:root{--bg:#000;--text:#fff;--secondary:#8a8a8a;--hairline:#262626;--nav:64px;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html{height:100%;scrollbar-width:none}body,html{overscroll-behavior-y:none;max-width:100vw;overflow-x:clip}body{min-height:100%;padding-top:var(--nav);background:#000;color:#fff;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{display:none}a,button{color:inherit;font:inherit}button{cursor:pointer;background:none;border:0}a{text-decoration:none}video{display:block;max-width:100%}.global-grain{pointer-events:none;z-index:999;mix-blend-mode:screen;opacity:.15;position:fixed;inset:0;overflow:hidden}.global-grain:after,.placeholder-grain{content:"";position:absolute;inset:-50%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='198' height='198'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E");animation:grain .65s steps(6) infinite}@keyframes grain{0%,to{transform:translate(0)}16%{transform:translate(-3%,-6%)}33%{transform:translate(-9%,4%)}50%{transform:translate(5%,-8%)}66%{transform:translate(-4%,9%)}83%{transform:translate(7%,3%)}}.pixel-cursor{pointer-events:none;z-index:2000;position:fixed;display:grid;grid-template-columns:repeat(3,4px);transition:opacity .15s;transform:translate(-50%,-50%)}.pixel-cursor i{width:4px;height:4px;background:#ffffff18;-webkit-backdrop-filter:blur(4px) invert(1);backdrop-filter:blur(4px) invert(1)}.nav-bleed{z-index:90;pointer-events:none;height:150px;background:#000;-webkit-mask-image:linear-gradient(#000 0,#000 var(--nav),transparent 100%);mask-image:linear-gradient(#000 0,#000 var(--nav),transparent 100%)}.nav-bleed,.tab-nav{position:fixed;top:0;left:0;right:0}.tab-nav{height:var(--nav);z-index:100;display:flex;justify-content:space-between;align-items:center;padding:0 24px}.site-mark{font-size:13px;letter-spacing:.02em;text-shadow:0 1px 4px #0008}.site-mark small,.site-mark span{color:var(--secondary);font-size:12px;margin-left:7px}.tab-nav nav{display:flex;gap:20px;position:relative}.tab-nav nav button{color:var(--secondary);font-size:13px;letter-spacing:.02em;padding-bottom:6px;transition:color .25s}.tab-nav nav button[data-active=true]{color:#fff}.tab-nav nav i{position:absolute;bottom:0;left:0;height:1px;background:#fff;transition:transform .35s cubic-bezier(.65,0,.35,1),width .35s}.home-viewport,.work-viewport{width:100%;overflow:hidden}.home-slider,.work-slider{display:flex;align-items:flex-start;width:200%;will-change:transform;transition:transform .5s cubic-bezier(.65,0,.35,1)}.home-slider[data-tab=info],.work-slider[data-view=index]{transform:translateX(-50%)}.home-pane,.work-pane{width:50%;flex-shrink:0}.home-slider[data-tab=info]>.home-pane:first-child,.home-slider[data-tab=work]>.home-pane:nth-child(2){max-height:calc(100vh - var(--nav));overflow:hidden}.reel-block{height:calc(100vh - var(--nav));display:flex;justify-content:center;align-items:center;position:relative;box-sizing:border-box;padding-bottom:78px}.reel-stage{width:min(560px,56vw);aspect-ratio:16/9;perspective:1400px;box-shadow:0 36px 110px #000}.placeholder{width:100%;height:100%;position:relative;overflow:hidden;background:#222}.reel-stage .placeholder{transform:rotateX(2deg) rotateY(-3deg);transition:transform .6s cubic-bezier(.2,.8,.2,1)}.reel-stage:hover .placeholder{transform:rotateX(-1deg) rotateY(2deg) scale(1.015)}.wash{position:absolute;width:70%;aspect-ratio:1;border-radius:50%;filter:blur(50px);animation:drift 8s ease-in-out infinite alternate}.wash-one{left:-15%;top:-45%;background:#bb3c1f}.wash-two{right:-15%;bottom:-55%;background:#234d9e;animation-delay:-4s}@keyframes drift{to{transform:translate(35%,25%) scale(1.25)}}.reel-lockup{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.reel-lockup b{font-size:clamp(28px,5vw,65px);letter-spacing:.17em;line-height:.82}.reel-lockup small{position:absolute;bottom:18px;color:#ffffffb3;font-size:10px;letter-spacing:.15em;text-transform:uppercase}.scroll-cue{pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:10px;position:absolute;bottom:28px;left:50%;transform:translateX(-50%)}.scroll-cue span{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#ffffffb3}.scroll-cue i{width:10px;height:10px;border-right:1px solid #ffffffb3;border-bottom:1px solid #ffffffb3;transform:rotate(45deg);animation:bob 1.8s ease-in-out infinite}@keyframes bob{50%{transform:rotate(45deg) translate(4px,4px)}}.selected-work{max-width:1400px;margin:0 auto;padding:64px 24px 120px}.work-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:32px}.work-header h1{font-size:14px;font-weight:400}.toggle{display:flex;gap:20px;position:relative}.toggle button{font-size:13px;color:var(--secondary);letter-spacing:.02em;padding-bottom:6px}.toggle button[data-active=true]{color:#fff}.toggle i{position:absolute;bottom:0;left:0;background:#fff;height:1px;width:52px;transition:transform .35s,width .35s}.toggle i[data-view=index]{width:33px;transform:translateX(72px)}.work-slider[data-view=index]>.work-pane:first-child,.work-slider[data-view=previews]>.work-pane:nth-child(2){max-height:calc(100vh - var(--nav));overflow:hidden}.preview-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:4px;gap:4px}.focus-card{display:block;position:relative;aspect-ratio:4/3;background:var(--hairline);overflow:hidden}.focus-card video{width:100%;height:100%;object-fit:cover}.focus-card .placeholder{position:absolute;inset:0}.ember{background:#81301f}.ember .wash-one{background:#ff6844}.ember .wash-two{background:#180d09}.cobalt{background:#192f73}.cobalt .wash-one{background:#577eea}.cobalt .wash-two{background:#0a122e}.acid{background:#657c25}.acid .wash-one{background:#c8e95b}.acid .wash-two{background:#26320c}.violet{background:#472d70}.violet .wash-one{background:#9668d7}.violet .wash-two{background:#190e29}.gold{background:#745018}.gold .wash-one{background:#e5aa42}.gold .wash-two{background:#261806}.ice{background:#315b62}.ice .wash-one{background:#70b4ba}.ice .wash-two{background:#0d2225}.card-word{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#fff;font-size:clamp(24px,3.2vw,50px);letter-spacing:-.05em;opacity:.7;mix-blend-mode:overlay}.media-note{position:absolute;bottom:12px;right:14px;color:#ffffffb8;text-transform:uppercase;letter-spacing:.14em;font-size:8px}.card-overlay{opacity:0;position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:16px;background:linear-gradient(transparent,#0007);transition:opacity .3s}.focus-card:hover .card-overlay{opacity:1}.card-overlay strong{font-size:14px;font-weight:400}.card-overlay span{font-size:12px;color:#ffffffbf;margin-top:2px}.index-list{border-top:1px solid var(--hairline)}.index-row{display:flex;justify-content:space-between;align-items:baseline;gap:32px;padding:18px 0;border-bottom:1px solid var(--hairline);transition:opacity .25s}.index-row:hover{opacity:.5}.index-row span{font-size:18px}.index-row small{font-size:13px;color:var(--secondary);text-align:right}.floating-preview{pointer-events:none;z-index:500;position:fixed;top:0;left:0;width:390px;aspect-ratio:16/9;border-radius:4px;overflow:hidden;box-shadow:0 24px 60px #0008;animation:fade .2s both}.floating-preview .placeholder{height:100%}@keyframes fade{0%{opacity:0;scale:.94}}.info-panel{min-height:calc(100vh - var(--nav));max-width:640px;margin:0 auto;padding:96px 24px 120px;position:relative;left:48px}.info-about{margin-bottom:64px}.info-panel h2{color:var(--secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;font-size:13px;font-weight:400}.info-about p{font-size:20px;line-height:1.5;text-wrap:pretty}.info-about p+p{margin-top:20px}.info-section+.info-section{margin-top:64px}.info-rows{border-top:1px solid var(--hairline)}.info-rows>div{border-bottom:1px solid var(--hairline);display:flex;justify-content:space-between;align-items:baseline;padding:18px 0}.info-rows span{color:var(--secondary);font-size:13px}.info-rows a,.info-rows b{font-size:15px;font-weight:400}.info-rows a:hover{opacity:.5}.info-rows.cv>div{padding:14px 0}.info-panel footer{border-top:1px solid var(--hairline);color:var(--secondary);font-size:12px;margin-top:64px;padding-top:18px}@keyframes pixel{0%{filter:blur(0)}33%{filter:blur(.8px) contrast(1.5)}66%{filter:blur(.3px) contrast(1.2)}}@media(hover:hover){.pixel-hover:hover{animation:pixel .4s step-end infinite}}@media(max-width:900px){.preview-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.tab-nav{padding:0 16px}.site-mark small,.site-mark span{display:none}.reel-block{height:calc(100svh - var(--nav))}.reel-stage{width:78vw}.scroll-cue{bottom:20px}.selected-work{padding:48px 16px 96px}.preview-grid{grid-template-columns:1fr}.index-row{gap:16px}.index-row span{font-size:15px}.index-row small{max-width:58%;font-size:12px}.floating-preview,.pixel-cursor{display:none}.info-panel{left:0;padding:56px 34px 96px}.info-about p{font-size:17px}.info-rows.cv>div{flex-direction:column;align-items:flex-start;gap:2px}}@media(prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}.pixel-cursor{display:none}}.cube-scene{position:relative;--cw:max(190px,min(500px,44vw,calc(80vh - 179px)));--ch:calc(var(--cw)*.5625);--cd:calc(var(--cw)*.72);width:var(--cw);height:calc(var(--cw)*1.21);perspective:1700px;perspective-origin:50% 45%}.cube{position:relative;width:100%;height:100%;transform-style:preserve-3d;will-change:transform}.cube-face{position:absolute;transition:filter .5s,opacity .5s;left:50%;top:50%;overflow:hidden;background:#141414;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-shadow:inset 0 0 0 1px #ffffff17}.cube-face video{width:100%;height:100%;object-fit:cover;display:block}.cube-face .placeholder{position:absolute;inset:0}.cube-face figcaption{position:absolute;left:0;bottom:0;width:100%;padding:10px 12px;display:flex;justify-content:space-between;align-items:baseline;gap:10px;background:linear-gradient(transparent,#000000a6);font-size:11px;letter-spacing:.04em}.cube-face figcaption b{font-weight:400}.cube-face figcaption span{color:#ffffffa6;font-size:9px;letter-spacing:.14em;text-transform:uppercase;text-align:right}.f-front{transform:translate(-50%,-50%) rotateY(0deg) translateZ(calc(var(--cd)/2))}.f-back,.f-front{width:var(--cw);height:var(--ch)}.f-back{transform:translate(-50%,-50%) rotateY(180deg) translateZ(calc(var(--cd)/2))}.f-right{transform:translate(-50%,-50%) rotateY(90deg) translateZ(calc(var(--cw)/2))}.f-left,.f-right{width:var(--cd);height:var(--ch)}.f-left{transform:translate(-50%,-50%) rotateY(-90deg) translateZ(calc(var(--cw)/2))}.f-top{transform:translate(-50%,-50%) rotateX(90deg) translateZ(calc(var(--ch)/2))}.f-bottom,.f-top{width:var(--cw);height:var(--cd)}.f-bottom{transform:translate(-50%,-50%) rotateX(-90deg) translateZ(calc(var(--ch)/2))}.cube-shadow{top:calc(var(--cw)*.51 + var(--ch)*.62);width:calc(var(--cw) * .9);height:40px;transform:translate(-50%,-50%);background:radial-gradient(ellipse at center,#000000b3,transparent 70%);filter:blur(14px)}.cube-shadow,.hero-caption{position:absolute;left:50%;pointer-events:none}.hero-caption{bottom:96px;transform:translateX(-50%);text-align:center}.hero-caption b{font-size:11px;letter-spacing:.34em;font-weight:400}.hero-caption b,.hero-caption small{display:block;text-transform:uppercase}.hero-caption small{margin-top:7px;font-size:10px;letter-spacing:.16em;color:#ffffff8c}@media(max-width:640px){.cube-scene{position:relative;--cw:max(170px,min(300px,80vw,calc(80vh - 150px)))}.hero-caption{bottom:78px}}@media(prefers-reduced-motion:reduce){.cube{transition:none}}.cube-face[data-focused=false]{filter:saturate(.65) brightness(.72)}.cube-face[data-lid=true]{filter:saturate(.35) brightness(.5)}.cube-face[data-lid=true] figcaption{opacity:.6}.cube-face[data-focused=true]{filter:none}.reel-stack{flex-direction:column;position:relative;z-index:1}.cube-controls,.reel-stack{display:flex;align-items:center}.cube-controls{gap:24px;margin-top:20px;z-index:6}.cube-ctl{display:grid;place-items:center;width:30px;height:28px;color:#ffffffb3;background:none;border:0;cursor:pointer;transition:color .2s,transform .2s}.cube-ctl:hover{color:#fff;transform:translateY(-1px)}.cube-ctl:focus-visible{outline:1px solid #ffffff80;outline-offset:4px}.fs-stage{position:fixed;inset:0;display:none;background:#000;place-items:center}.fs-stage:-webkit-full-screen{display:grid}.fs-stage:fullscreen{display:grid}.fs-stage video{width:100%;height:100%;object-fit:contain;background:#000}.fs-stage .placeholder{width:100vw;height:100vh}@media(max-width:640px){.cube-controls{top:calc(100% + 40px);gap:20px}}.reel-block:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:radial-gradient(48% 40% at 50% 43%,var(--amb-1),transparent 68%),radial-gradient(86% 74% at 50% 52%,var(--amb-2),transparent 76%);opacity:.3;transition:opacity .6s}.cube-scene,.scroll-cue{z-index:1}.cell-grid{position:absolute;inset:0;display:grid;pointer-events:none;grid-template-columns:repeat(var(--cols),1fr);grid-template-rows:repeat(var(--rows),1fr)}.cell-grid>i{background:#09090b;display:block}.cell-grid[data-phase=idle]>i{opacity:1}.cell-grid[data-phase=out]>i{animation:cell-vanish 1ms step-end forwards}.cell-grid[data-phase=in]>i{opacity:0;animation:cell-appear 1ms step-end forwards}@keyframes cell-vanish{to{opacity:0}}@keyframes cell-appear{to{opacity:1}}.intro-splash{position:fixed;inset:0;z-index:2000;pointer-events:none;background:#09090b}.intro-splash[data-phase=out]{background:transparent}.intro-lockup{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;animation:pixel .4s step-end infinite;transition:opacity .28s steps(4)}.intro-splash[data-phase=out] .intro-lockup{opacity:0;animation:none}.intro-lockup b{font-size:clamp(15px,2.1vw,23px);font-weight:400;letter-spacing:.34em;text-indent:.34em}.intro-lockup small{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#ffffff80}.pixel-wipe{position:fixed;inset:0;z-index:1500;pointer-events:none}.cube-hit{position:absolute;left:0;right:0;top:0;height:calc(var(--cw)*1.02);display:grid;place-items:center;cursor:-webkit-grab;cursor:grab;touch-action:none;perspective:inherit;perspective-origin:50% 45%;transform-style:preserve-3d}.cube-hit:active{cursor:-webkit-grabbing;cursor:grabbing}.cube-hit:focus-visible{outline:1px solid #ffffff59;outline-offset:10px}.cube-face{cursor:inherit}.cube[data-squash="0"]{animation:squash-a .42s cubic-bezier(.34,1.56,.64,1)}.cube[data-squash="1"]{animation:squash-b .42s cubic-bezier(.34,1.56,.64,1)}@keyframes squash-a{0%{scale:1 1 1}38%{scale:1.04 .96 1}70%{scale:.985 1.015 1}to{scale:1 1 1}}@keyframes squash-b{0%{scale:1 1 1}38%{scale:1.04 .96 1}70%{scale:.985 1.015 1}to{scale:1 1 1}}.cube-now{margin-top:15px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#ffffff8c;white-space:nowrap;z-index:6;animation:pixel .3s step-end 2,fade-step .4s steps(4)}@keyframes fade-step{0%{opacity:0}}.preview-grid .focus-card{opacity:0;transform:scale(1.035);transition:opacity .5s steps(5),transform .5s steps(5),filter .5s steps(5);filter:brightness(.4)}.preview-grid[data-reveal="1"] .focus-card{opacity:1;transform:none;filter:none}.reel-block:before{animation:wash-flicker 7s steps(1) infinite}@keyframes wash-flicker{0%,to{opacity:1}47%{opacity:.86}62%{opacity:1}71%{opacity:.93}}@media(prefers-reduced-motion:reduce){.cell-grid>i{animation:none!important;opacity:0!important}.intro-splash{display:none}.preview-grid .focus-card{opacity:1;transform:none;filter:none}}@property --amb-1{syntax:"<color>";inherits:true;initial-value:#6a5836}@property --amb-2{syntax:"<color>";inherits:true;initial-value:#26303f}:root{--amb-1:#6a5836;--amb-2:#26303f;transition:--amb-1 .55s linear,--amb-2 .55s linear}.cube-bleed{position:absolute;left:50%;top:calc(var(--cw)*.51);width:150%;height:150%;transform:translate(-50%,-50%);z-index:0;pointer-events:none;filter:blur(54px) saturate(1.85) brightness(1.15);opacity:.5}.cube-hit{z-index:2}.cube-shadow{z-index:1}.scroll-glitch{position:fixed;inset:0;z-index:1200;pointer-events:none;opacity:0;transition:opacity .2s steps(3)}.scroll-glitch[data-on=true]{opacity:1}.sg-band{position:absolute;left:0;right:0;height:78px;display:flex;overflow:hidden;mix-blend-mode:screen}.sg-top{-webkit-mask-image:linear-gradient(#000,#0000);mask-image:linear-gradient(#000,#0000)}.sg-bottom{-webkit-mask-image:linear-gradient(#0000,#000);mask-image:linear-gradient(#0000,#000)}.sg-top{top:0}.sg-bottom{bottom:0}.sg-band>i{height:100%;flex-basis:0;opacity:0;animation-name:sg-jitter;animation-timing-function:steps(1);animation-iteration-count:infinite;animation-play-state:paused;will-change:transform,opacity}.scroll-glitch[data-on=true] .sg-band>i{animation-play-state:running}@keyframes sg-jitter{0%{opacity:0;transform:translateZ(0);-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000}18%{opacity:1;transform:translate3d(-11px,0,0);-webkit-backdrop-filter:hue-rotate(95deg) saturate(2.4) brightness(1.3);backdrop-filter:hue-rotate(95deg) saturate(2.4) brightness(1.3);background:#22e0ff2e}36%{opacity:.72;transform:translate3d(8px,-2px,0);-webkit-backdrop-filter:invert(1) hue-rotate(180deg);backdrop-filter:invert(1) hue-rotate(180deg);background:#ff2e8833}54%{opacity:.95;transform:translate3d(-5px,0,0);-webkit-backdrop-filter:contrast(2.4) saturate(0);backdrop-filter:contrast(2.4) saturate(0);background:#ffffff1f}72%{opacity:.6;transform:translate3d(13px,2px,0);-webkit-backdrop-filter:hue-rotate(-70deg) brightness(1.5);backdrop-filter:hue-rotate(-70deg) brightness(1.5);background:#22e0ff26}to{opacity:0;transform:translateZ(0);-webkit-backdrop-filter:none;backdrop-filter:none;background:#0000}}.scanlines{position:fixed;inset:0;z-index:998;pointer-events:none;opacity:.5;mix-blend-mode:overlay;background:repeating-linear-gradient(180deg,#0000 0 2px,#00000059 2px 3px)}.site-mark:hover{text-shadow:-1.4px 0 #ff2e88b3,1.4px 0 #22e0ffb3}.cube-now{text-shadow:-1px 0 #ff2e8873,1px 0 #22e0ff73}.cube-ctl:hover{text-shadow:-1px 0 #ff2e88,1px 0 #22e0ff}@media(prefers-reduced-motion:reduce){.scanlines,.scroll-glitch{display:none}}@media(max-height:600px){.scroll-cue{display:none}.reel-block{padding-bottom:0}}:focus-visible{outline:2px solid #fff;outline-offset:4px}.focus-card:focus-visible{outline-offset:-4px;z-index:2}.focus-card[aria-pressed=true]{box-shadow:inset 0 0 0 2px #fff}.expertise-detail{display:flex;justify-content:space-between;align-items:flex-end;gap:48px;padding:38px 0 0}.expertise-detail small{display:block;margin-bottom:8px;color:var(--secondary);font-size:12px;letter-spacing:.1em;text-transform:uppercase}.expertise-detail h2{font-size:26px;font-weight:400;letter-spacing:-.02em}.expertise-detail p{max-width:620px;margin-top:10px;color:#c6c6c6;font-size:16px;line-height:1.55}.contact-cta{min-height:44px;display:inline-flex;flex:0 0 auto;align-items:center;gap:24px;padding:0 16px;border:1px solid #4a4a4a;font-size:13px;transition:background .2s,color .2s,border-color .2s}.contact-cta:focus-visible,.contact-cta:hover{color:#000;background:#fff;border-color:#fff}@media(max-width:640px){.tab-nav nav{gap:8px}.tab-nav nav button{min-width:44px;min-height:44px;padding:0 8px}.tab-nav nav i{bottom:4px}.site-mark{min-height:44px;display:flex;align-items:center}.reel-block{padding-bottom:56px}.cube-scene{--cw:min(250px,64vw,calc(68svh - 150px));height:calc(var(--cw)*1.12);perspective:1900px}.cube-hit{height:calc(var(--cw)*1.02)}.cube-face figcaption{padding:9px 10px;font-size:12px}.cube-face figcaption span{font-size:10px}.cube-controls{margin-top:14px;gap:12px}.cube-ctl{width:44px;height:44px}.cube-now{margin-top:6px;font-size:11px}.selected-work{padding-top:40px}.toggle{gap:4px}.toggle button{min-width:44px;min-height:44px;padding:0 6px}.toggle i{bottom:4px}.expertise-detail{display:block;padding-top:28px}.expertise-detail h2{font-size:23px}.expertise-detail p{font-size:15px}.contact-cta{width:100%;justify-content:space-between;margin-top:24px}.info-panel{padding-left:22px;padding-right:22px}.info-about p{font-size:18px;line-height:1.55}.info-rows a,.info-rows b{font-size:14px}}