@import url("https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap");*{margin:0;padding:0;box-sizing:border-box}body{font-family:DM Sans,sans-serif}img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}a,h1,p{text-transform:uppercase;color:#000}h1{font-size:5rem;font-weight:600;letter-spacing:-.1rem}.slide-title h1{font-family:var(--font-instrument-serif),serif}.slide-index-wrapper p,.slide-tags p{font-family:var(--font-geist-mono),monospace}.project-title h2{font-family:var(--font-instrument-serif),serif!important;letter-spacing:0;text-transform:none}.project-blurb p,.project-definition p,.project-pronunciation p,.project-summary p{font-family:var(--font-geist-mono),monospace!important}.timeline-content .company,.timeline-content .position{font-family:var(--font-geist-sans,"DM Sans"),sans-serif}.projects-container .tag,.projects-container a,.projects-container h3,.projects-container h4,.projects-container h5,.projects-container li,.projects-container p{text-transform:none!important}a,p{text-decoration:none;font-family:DM Mono;font-size:.9rem;font-weight:500;letter-spacing:-.01rem}.slider{position:relative;width:100vw;height:100svh;background-color:#fff;overflow:hidden}.slide,.slide-img{position:absolute;top:0;left:0;width:100vw;height:100svh}.slide{background:#fff;will-change:transform;z-index:10100;transform-origin:center center}.char{display:inline-block}.slide-header{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);width:75%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem;z-index:11060}.slide-description{width:60%;text-align:center;margin-bottom:1rem;position:relative}.slide-description p{font-family:var(--font-geist-mono),monospace;text-transform:none}.hl-orange{position:relative;color:#000}.hl-orange:after{display:none!important}.hl-orange:before{content:"";position:absolute;left:0;right:0;bottom:-.05em;height:1.05em;background:rgba(255,163,102,.35);z-index:-1;transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.22,1,.36,1)}.hl-orange.hl-show:before{transform:scaleX(1)}.hl-soft-pink:before{background:#E9CDD5}.hl-soft-blue:before{background:#DDE6F6}.hl-soft-cream:before{background:#F2E8D5}.hl-soft-sage:before{background:#E6F1EC}.hl-exp-yellow:before{background:#E6D37C;height:1.12em;bottom:.02em}.hl-exp-sage:before{background:#A9D4A1;height:1.12em;bottom:.02em}.hl-soft-blue:before,.hl-soft-pink:before{transition:transform .5s cubic-bezier(.22,1,.36,1)}.artist-chip{position:relative;cursor:pointer;border-bottom:1px dotted rgba(0,0,0,.35);padding-bottom:1px}.artist-tooltip{position:absolute;left:50%;transform:translateX(-50%) translateY(-8px);bottom:100%;background:rgba(255,255,255,.75);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(0,0,0,.12);border-radius:6px;padding:10px 12px;box-shadow:0 8px 24px rgba(0,0,0,.08);font-family:var(--font-geist-mono),monospace;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease,filter .22s ease;z-index:10001;filter:blur(6px);min-width:240px}.artist-chip.show-tooltip .artist-tooltip{opacity:1;transform:translateX(-50%) translateY(-12px);filter:blur(0)}.artist-tooltip-list{display:grid;gap:6px;max-height:220px;overflow:auto}.artist-tooltip .row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:baseline}.artist-tooltip .kv-key{text-transform:uppercase;letter-spacing:.05em;opacity:.6}.artist-tooltip .kv-value{opacity:.95}.artist-tooltip .artist-img{width:16px;height:16px;-o-object-fit:cover;object-fit:cover;border-radius:3px;vertical-align:-2px;margin-right:6px}.paper-chip{position:relative;cursor:pointer;padding:0 2px}.paper-chip:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(0,0,0,.5);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.paper-chip:hover:after{transform:scaleX(1)}.paper-chip:hover{filter:blur(.2px)}.hl-paper-lilac:before{background:#E7DDF2}.hl-paper-mint:before{background:#DDF2EA}.papers-list{position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;margin-top:0;opacity:0;filter:blur(6px);transition:opacity .3s cubic-bezier(.22,1,.36,1),transform .3s cubic-bezier(.22,1,.36,1),filter .3s cubic-bezier(.22,1,.36,1);z-index:11055;pointer-events:none;width:100%;max-width:none;padding:0 6px;box-sizing:border-box}.papers-list,.papers-tabs{justify-content:center;align-items:center}.papers-tabs{display:inline-flex;position:relative;z-index:11063}.papers-tab{cursor:pointer;letter-spacing:.08em;opacity:.9;font-family:var(--font-geist-mono),monospace;font-size:12px;padding-bottom:2px;text-transform:lowercase;position:relative}.papers-tab:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:rgba(0,0,0,.65);transform:scaleX(0);transform-origin:left;transition:transform .24s cubic-bezier(.22,1,.36,1)}.papers-tab:focus-visible:after,.papers-tab:hover:after{transform:scaleX(1)}.papers-items,.playlists-items{display:none}.papers-list.papers-in{opacity:1;transform:translate(-50%);filter:blur(0);pointer-events:auto}.papers-list .papers-tabs{pointer-events:auto}.papers-list .papers-reveal,.papers-reveal{pointer-events:none}.papers-reveal{display:inline-flex;flex-wrap:wrap;gap:12px;justify-content:center;opacity:0;filter:blur(6px);transform:translateY(6px);transition:opacity .32s cubic-bezier(.22,1,.36,1),filter .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1);text-align:center;will-change:opacity,transform,filter;width:100%;max-width:100%;padding:0 8px;box-sizing:border-box}.papers-reveal.show{opacity:1;filter:blur(0);transform:translateY(0)}.papers-reveal a{max-width:44vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width:900px){.papers-reveal a{max-width:28vw}}.papers-list .papers-tab,.papers-reveal a{transition:opacity .3s cubic-bezier(.22,1,.36,1),transform .3s cubic-bezier(.22,1,.36,1),filter .32s cubic-bezier(.22,1,.36,1);will-change:opacity,transform,filter}.papers-reveal.show{pointer-events:auto}.papers-reveal a,.papers-reveal.show a,.playlists-reveal.show .paper-chip,.playlists-reveal.show .pl-item,.playlists-reveal.show a{opacity:1;filter:blur(0);transform:translateY(0)}.papers-reveal.show a:first-child{transition-delay:0s}.papers-reveal.show a:nth-child(2){transition-delay:40ms}.papers-reveal.show a:nth-child(3){transition-delay:80ms}.papers-reveal.show a:nth-child(4){transition-delay:.12s}.papers-reveal.show a:nth-child(5){transition-delay:.16s}.papers-reveal.show a:nth-child(6){transition-delay:.2s}.papers-reveal.show a:nth-child(7){transition-delay:.24s}.papers-reveal.show a:nth-child(8){transition-delay:.28s}.playlists-popup{position:absolute;bottom:100%;left:50%;transform:translate(-50%,-6px);background:rgba(255,255,255,.75);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(0,0,0,.12);border-radius:6px;padding:10px 12px;box-shadow:0 8px 24px rgba(0,0,0,.08);font-family:var(--font-geist-mono),monospace;font-size:12px;min-width:260px;max-width:80vw;max-height:50vh;overflow:auto;opacity:0;filter:blur(6px);pointer-events:none;transition:opacity .22s ease,transform .22s ease,filter .22s ease;text-align:left}.playlists-popup.open{opacity:1;filter:blur(0);transform:translate(-50%);pointer-events:auto}.pl-list{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.pl-item,.pl-list{align-items:center}.pl-item{display:inline-flex}.pl-name{font-weight:500}.pl-tracks{opacity:.75}.slide-info{position:absolute;left:0;bottom:2rem;width:100vw;padding:0 2rem;display:flex;justify-content:space-between;align-items:flex-end}.slider-content[data-slide-index="0"] .slide-tags{transform:translateY(20px)}.slider-content[data-slide-index="0"] .slide-header{bottom:3rem;top:auto;transform:translate(-50%)}.slide-tags{display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start}.slide-tags .spotify-line,.slide-tags p{margin:0;line-height:1;font-family:DM Mono;font-size:.9rem;font-weight:500;letter-spacing:-.01rem;text-transform:uppercase;color:#000}.slide-index-wrapper{display:flex}.slide-index-group{display:flex;align-items:center;gap:.25rem}.slide-index-inner{display:flex;align-items:center;gap:.5rem}.slide-arrows{display:flex;align-items:center;gap:.25rem}.slide-arrow-btn{all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:none;border:none;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:opacity .2s ease,transform .15s ease}.slide-arrow-btn:hover{opacity:.7;transform:translateY(-1px)}.project-center-arrow{position:absolute;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:opacity .2s ease,transform .15s ease;background:transparent;border:none;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.project-center-arrow.left{left:1.5rem}.project-center-arrow.right{right:1.5rem}.project-center-arrow:hover{opacity:.75;transform:translateY(-50%) scale(1.05)}.project-center-arrow:focus{outline:none}.slide-index-wrapper p{text-align:center;width:2rem}.slide-tags p:first-child{margin-bottom:1rem}.slide-tags .spotify-line{line-height:1}.nowplaying-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;position:relative}.nowplaying-row:before{content:"";position:absolute;left:0;right:0;top:50%;border-bottom:1px dotted rgba(0,0,0,.25);transform:translateY(-50%) scaleX(var(--npLine,1));transform-origin:left;transition:transform .3s ease;z-index:0}.nowplaying-key,.nowplaying-value{position:relative;z-index:1;background:#fff;padding:0 6px}.nowplaying-key{text-transform:uppercase;letter-spacing:.05em}.nowplaying-value{justify-self:end}.nowplaying-scroll{display:inline-block;max-width:280px;white-space:nowrap;overflow:hidden}.nowplaying-scroll:hover{animation:np-marquee 8s linear infinite}@keyframes np-marquee{0%{transform:translateX(0)}to{transform:translateX(calc(-100% + 280px))}}.slide-index-wrapper p{margin:0}.line,.word{position:relative;display:inline-block;will-change:transform}@media (max-width:1000px){h1{font-size:2rem;letter-spacing:0}p{font-size:.8rem}.slide-header{top:50%;bottom:unset;transform:translate(-50%,-50%);width:90%}.slide-description{width:100%}}@keyframes tv-static{0%{background-image:radial-gradient(circle at 20% 50%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 80% 20%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 40% 80%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 90% 90%,rgba(255,255,255,.1) 1px,transparent 0)}25%{background-image:radial-gradient(circle at 60% 30%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 10% 70%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 70% 10%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 30% 60%,rgba(255,255,255,.1) 1px,transparent 0)}50%{background-image:radial-gradient(circle at 90% 40%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 50% 90%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 20% 20%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 80% 80%,rgba(255,255,255,.1) 1px,transparent 0)}75%{background-image:radial-gradient(circle at 30% 10%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 70% 60%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 10% 40%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 60% 90%,rgba(255,255,255,.1) 1px,transparent 0)}to{background-image:radial-gradient(circle at 20% 50%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 80% 20%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 40% 80%,rgba(255,255,255,.1) 1px,transparent 0),radial-gradient(circle at 90% 90%,rgba(255,255,255,.1) 1px,transparent 0)}}@keyframes scanlines{0%{transform:translateY(-100%)}to{transform:translateY(100vh)}}.tv-static{background-size:200px 200px;animation:tv-static .2s infinite;z-index:10001;opacity:.3}.scanlines,.tv-static{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.scanlines{background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,.03) 0,rgba(255,255,255,.03) 4px);z-index:10002}.crt-overlay{position:fixed;inset:0;pointer-events:none;z-index:10000}.vignette-overlay{position:absolute;inset:0;box-shadow:inset 0 0 200px rgba(0,0,0,.08);pointer-events:none}@media (max-width:768px){.crt-overlay{display:none}}.screen-distortion{position:absolute;top:0;left:0;width:100%;height:100%;animation:screen-distortion .1s infinite;pointer-events:none;z-index:10003;mix-blend-mode:overlay}.crt-bezel,.crt-glass,.crt-shell{display:contents}.crt-curved{transform:none}.crt-barrel,.crt-curved{position:fixed;inset:0;pointer-events:none}.crt-barrel{z-index:10004;overflow:hidden;background:transparent}.crt-barrel:before{content:"";position:absolute;background:transparent;box-shadow:inset 0 0 0 2px rgba(255,255,255,.05),inset 0 0 100px rgba(0,0,0,.65),inset 0 0 320px rgba(0,0,0,.5)}.crt-barrel:before,.crt-bulge{inset:0;border-radius:0;pointer-events:none}.crt-bulge{position:fixed;z-index:10003;-webkit-backdrop-filter:contrast(1.06) saturate(.9) brightness(1.04);backdrop-filter:contrast(1.06) saturate(.9) brightness(1.04)}.crt-bulge:before{content:"";position:absolute;inset:-4%;border-radius:0;background:radial-gradient(120% 100% at 50% 35%,rgba(255,255,255,.06) 0,rgba(255,255,255,.015) 34%,rgba(255,255,255,0) 58%),radial-gradient(80% 70% at 50% 100%,rgba(255,255,255,.035) 0,rgba(255,255,255,0) 52%);mix-blend-mode:screen;pointer-events:none}.chromatic-ghost{position:relative;text-shadow:1px 0 0 rgba(255,0,0,.22),-1px 0 0 rgba(0,255,255,.22);animation:ghost-flicker 2.8s ease-in-out infinite}@keyframes ghost-flicker{0%,to{text-shadow:1px 0 0 rgba(255,0,0,.22),-1px 0 0 rgba(0,255,255,.22);transform:translateX(0)}35%{text-shadow:1.2px 0 0 rgba(255,0,0,.32),-1.2px 0 0 rgba(0,255,255,.32)}60%{text-shadow:.8px 0 0 rgba(255,0,0,.18),-.8px 0 0 rgba(0,255,255,.18)}75%{transform:translateX(.2px)}85%{transform:translateX(-.15px)}}.scanline-sweep{position:fixed;inset:0;pointer-events:none;z-index:10002}.scanline-sweep:before{content:"";position:absolute;left:0;right:0;top:-12vh;height:12vh;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.08),rgba(255,255,255,0));mix-blend-mode:screen;animation:scan-sweep 8s linear infinite}@keyframes scan-sweep{0%{transform:translateY(0)}to{transform:translateY(120vh)}}.tracking-band{position:fixed;left:0;right:0;top:10vh;height:14vh;pointer-events:none;z-index:10002;opacity:.35;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.07),rgba(0,0,0,.03));mix-blend-mode:screen;filter:blur(.3px);animation:tracking-drift 9s ease-in-out infinite alternate}@keyframes tracking-drift{0%{transform:translateY(-10vh)}to{transform:translateY(70vh)}}.vhs-vignette{position:fixed;inset:0;pointer-events:none;z-index:10004;background:radial-gradient(ellipse at center,rgba(0,0,0,0) 65%,rgba(0,0,0,.25) 100%);opacity:.86;animation:vignette-breathe 5.5s ease-in-out infinite}@keyframes vignette-breathe{0%,to{opacity:.86}50%{opacity:.89}}@keyframes screen-distortion{0%{transform:translateX(0) translateY(0) skewX(0deg);filter:hue-rotate(0deg) saturate(1)}10%{transform:translateX(2px) translateY(1px) skewX(.5deg);filter:hue-rotate(5deg) saturate(1.1)}20%{transform:translateX(-1px) translateY(-1px) skewX(-.3deg);filter:hue-rotate(-3deg) saturate(.9)}30%{transform:translateX(3px) translateY(0) skewX(.8deg);filter:hue-rotate(8deg) saturate(1.2)}40%{transform:translateX(-2px) translateY(1px) skewX(-.6deg);filter:hue-rotate(-5deg) saturate(.8)}50%{transform:translateX(1px) translateY(-1px) skewX(.2deg);filter:hue-rotate(2deg) saturate(1)}60%{transform:translateX(-3px) translateY(0) skewX(-.9deg);filter:hue-rotate(-7deg) saturate(1.3)}70%{transform:translateX(2px) translateY(1px) skewX(.4deg);filter:hue-rotate(4deg) saturate(.9)}80%{transform:translateX(-1px) translateY(-1px) skewX(-.2deg);filter:hue-rotate(-2deg) saturate(1.1)}90%{transform:translateX(3px) translateY(0) skewX(.7deg);filter:hue-rotate(6deg) saturate(.8)}to{transform:translateX(0) translateY(0) skewX(0deg);filter:hue-rotate(0deg) saturate(1)}}.chromatic-text{animation:chromatic-aberration .3s infinite}@keyframes chromatic-aberration{0%{text-shadow:1px 0 0 rgba(255,0,0,.5),-1px 0 0 rgba(0,255,255,.5),0 1px 0 rgba(0,255,0,.5)}25%{text-shadow:2px 0 0 rgba(255,0,0,.6),-2px 0 0 rgba(0,255,255,.6),0 2px 0 rgba(0,255,0,.6)}50%{text-shadow:1px 0 0 rgba(255,0,0,.4),-1px 0 0 rgba(0,255,255,.4),0 1px 0 rgba(0,255,0,.4)}75%{text-shadow:3px 0 0 rgba(255,0,0,.7),-3px 0 0 rgba(0,255,255,.7),0 3px 0 rgba(0,255,0,.7)}to{text-shadow:1px 0 0 rgba(255,0,0,.5),-1px 0 0 rgba(0,255,255,.5),0 1px 0 rgba(0,255,0,.5)}}.eject-page-active{background-color:black!important;color:white!important;font-family:VCR,monospace!important;display:flex!important;align-items:center!important;justify-content:center!important;height:100vh!important;overflow:hidden!important}.eject-page-text{font-family:VCR,monospace!important;font-size:1.5rem!important;text-transform:uppercase!important;letter-spacing:.05em!important}.eject-page-description{font-family:VCR,monospace!important;font-size:.9rem!important;line-height:1.5!important;text-transform:none!important;letter-spacing:.02em!important}.eject-page-button{font-family:VCR,monospace!important;font-size:1rem!important;text-transform:uppercase!important;letter-spacing:.05em!important;transition:all .2s ease!important}.eject-page-button:hover{text-decoration:underline!important;opacity:.8!important}.dvd{animation:spin 4s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@font-face{font-family:VCR;src:url(/vcr.ttf) format("truetype");font-weight:400;font-style:normal}.vhs-header{z-index:12000!important}.profile-container{top:50%;max-width:400px;z-index:11050;opacity:0;pointer-events:none;transition:opacity .4s ease-in-out,transform .6s ease-in-out}.profile-container,.profile-stats-container{position:absolute;left:50%;transform:translate(-50%,-50%);width:100%}.profile-stats-container{top:45%;display:flex;flex-direction:column;align-items:center;gap:1rem;z-index:11040}.full-name,.full-name h1{text-align:center}.full-name h1{font-family:var(--font-instrument-serif),serif;font-weight:400;font-size:clamp(3rem,8vw,7rem);line-height:1}.full-name .name-dot{display:inline-block;will-change:transform,opacity}.profile-container.profile-visible{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.profile-container.profile-hidden{opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.95)}.profile-overlay{position:relative;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.profile-name{position:absolute;top:-40%;left:50%;transform:translateX(-50%);text-align:center;white-space:nowrap}.profile-name h1{font-size:3.5rem;font-weight:600;letter-spacing:-.05rem;color:#000;margin:0;text-transform:uppercase}.profile-image{width:200px;height:200px;border-radius:0;-o-object-fit:cover;object-fit:cover;border:none;box-shadow:none;transition:none;image-rendering:auto}@media (max-width:768px){.profile-image{width:150px;height:150px}}.threejs-slider-container{width:100%;height:50vh}.threejs-slider-container canvas{width:100%!important;height:100%!important;z-index:1;position:relative}.palette-row{display:flex;gap:12px;align-items:center;margin:6px 0 12px;justify-content:center;flex-wrap:nowrap;white-space:nowrap}.palette-swatch{gap:8px;font-family:DM Mono;font-size:12px}.palette-swatch,.palette-swatch .hex{display:inline-flex;align-items:center}.palette-swatch .hex .hash{display:inline-block;height:1em;line-height:1em;vertical-align:middle}.palette-swatch .hex .slot{text-align:center;line-height:1em}.palette-swatch .dot{width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.25);box-shadow:inset 0 0 0 1px rgba(255,255,255,.6);transition:background-color .3s ease}.palette-swatch .hex{display:inline-block;perspective:300px}.palette-swatch .hex .hex-char{display:inline-block;transform-origin:50% 50%;backface-visibility:hidden}.palette-swatch .hex .slot{display:inline-block;overflow:hidden;height:1em;width:.62em;vertical-align:middle}.palette-swatch .hex .reel{display:block;will-change:transform}.palette-swatch .hex .reel span{display:block;height:1em}.threejs-slider-container{position:relative}.threejs-slider-container .palette-row{position:absolute;margin:0;justify-content:center;visibility:hidden;z-index:5}.shot-settings{position:relative}.threejs-gallery-container+.shot-settings,.threejs-slider-container .shot-settings{position:absolute;left:16px;bottom:16px;max-width:50vw}.threejs-gallery-container{position:absolute;inset:0;width:100%;display:grid;align-items:start;justify-items:center;padding-top:14vh;z-index:11050;pointer-events:auto;opacity:0;filter:blur(6px);transform:translateY(6px);transition:opacity .52s cubic-bezier(.22,1,.36,1),filter .52s cubic-bezier(.22,1,.36,1),transform .52s cubic-bezier(.22,1,.36,1)}.threejs-gallery-container.gallery-visible{opacity:1;filter:blur(0);transform:translateY(0)}.threejs-gallery-container.gallery-hidden{opacity:0;pointer-events:none}.threejs-image-title{position:absolute;bottom:10%;left:50%;transform:translateX(-50%);z-index:1000;text-align:center;pointer-events:none}.threejs-image-title h3{font-family:DM Mono;font-size:.8rem;font-weight:300;color:#fff;margin:0;text-transform:uppercase;letter-spacing:.05em}.page-transition-overlay{position:fixed;inset:0;background:#000;opacity:0;z-index:9000;pointer-events:none}.slide-tags .spotify-container,.spotify-line-container{display:inline-block;max-width:260px;overflow:hidden;vertical-align:baseline;border:none;padding:0;margin:0;border-radius:0;position:relative;z-index:11070}.spotify-line{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:clip;max-width:100%;font-family:DM Mono;font-size:.9rem;font-weight:500;letter-spacing:-.01rem;text-transform:uppercase;color:#000}.slide-tags .spotify-container{position:relative;pointer-events:auto}.slide-tags .spotify-container .spotify-line{display:inline-block;will-change:transform;transition:transform .2s ease}.slide-tags .spotify-container{overflow:hidden}@media (max-width:768px){.spotify-line-container{max-width:180px}}.experience-list{position:absolute;top:36%;left:50%;transform:translate(-50%,-50%);width:100%;max-width:1000px;padding:1.5rem;z-index:11050;font-family:var(--font-geist-mono),monospace;opacity:0;transition:opacity .3s ease}.experience-list.small{max-width:800px;padding:1.25rem}.experience-timeline.timeline-exit{opacity:0;transform:translate(-50%,-50%) translateY(-30px)}@keyframes timelineFadeIn{0%{opacity:0;transform:translate(-50%,-50%) translateY(30px)}to{opacity:1;transform:translate(-50%,-50%) translateY(0)}}.exp-items{list-style:none;padding:0;margin:0}.exp-item{display:grid;grid-template-columns:110px 1fr;gap:16px;align-items:start;padding:6px 0;will-change:opacity,transform,filter}.exp-item.exp-pre{opacity:0;transform:translateY(6px);filter:blur(6px)}.exp-item.exp-row-in{opacity:1;transform:translateY(0);filter:blur(0);transition:opacity .3s ease,transform .3s ease,filter .42s ease}.exp-date{opacity:.6;font-size:.75rem;font-family:var(--font-geist-mono),monospace}.exp-title{font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.88rem}.exp-top{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.exp-company{font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.88rem;font-family:var(--font-geist-sans),sans-serif}.exp-meta{opacity:.65;font-size:.78rem}.exp-desc,.exp-meta{font-family:var(--font-geist-mono),monospace}.exp-desc{opacity:.68;margin-top:5px;font-size:.76rem;line-height:1.35}.caret{display:inline-block;width:1px;height:1em;background:#000;margin-left:2px;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.experience-list.exp-visible{opacity:1}.exp-enter{animation:expIn .5s ease-out}.experience-list.timeline-exit{animation:expOut .4s ease-in forwards}@keyframes expIn{0%{opacity:0;transform:translate(-50%,-60%)}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes expOut{0%{opacity:1}to{opacity:0}}@keyframes typing{0%{width:0}50%{width:12ch}60%{width:12ch}80%{width:3ch}90%{width:2ch}95%{width:1ch}to{width:0}}.paper{position:relative}.paper:before{content:none}.slider:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;background-image:var(--paperBg,none);background-size:cover;background-position:50%;opacity:0}.paper-loaded .slider:after{opacity:.25}.divider-thin{height:1px;background:rgba(0,0,0,.08);width:100%}.kv-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline}.kv-key{text-transform:uppercase;letter-spacing:.05em;opacity:.7}.kv-value{opacity:.9}.exp-key-row{position:absolute;right:1.5rem;top:2.25rem;display:flex;gap:14px;align-items:center;font-family:var(--font-geist-mono),monospace;font-size:12px;opacity:.8}.exp-key-row .key-item{display:inline-flex;align-items:center;gap:6px}.status-dot{width:6px;height:6px;border-radius:50%;display:inline-block;margin-left:6px}.status-progress{background:#E6D37C}.status-complete{background:#A9D4A1}.with-leaders{position:relative}.with-leaders:before{content:"";position:absolute;left:0;right:0;top:50%;border-bottom:1px dotted rgba(0,0,0,.3);transform:translateY(-50%) scaleX(0);transform-origin:left;z-index:0;transition:transform .5s ease;-webkit-mask-image:linear-gradient(to right,#000 0 var(--hole1-start,0),transparent var(--hole1-start,0) var(--hole1-end,0),#000 var(--hole1-end,0) var(--hole2-start,100%),transparent var(--hole2-start,100%) var(--hole2-end,100%),#000 var(--hole2-end,100%) 100%);mask-image:linear-gradient(to right,#000 0 var(--hole1-start,0),transparent var(--hole1-start,0) var(--hole1-end,0),#000 var(--hole1-end,0) var(--hole2-start,100%),transparent var(--hole2-start,100%) var(--hole2-end,100%),#000 var(--hole2-end,100%) 100%)}.with-leaders>span{background:transparent;position:relative;z-index:2;padding:0 6px}@keyframes leaderGrow{0%{transform:translateY(-50%) scaleX(0)}to{transform:translateY(-50%) scaleX(1)}}.with-leaders.animate:before{animation:leaderGrow .5s ease forwards}.with-leaders .kv-key,.with-leaders .kv-value{opacity:0;transition:opacity .2s ease}.with-leaders.show-key .kv-key,.with-leaders.show-value .kv-value{opacity:1}.fromto{display:grid;grid-template-columns:1fr 1fr;gap:24px;width:100%;max-width:900px;margin:0 auto}.fromto .ft-col h4{margin:0 0 6px;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}.fromto .ft-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;position:relative}.fromto .ft-row:before{content:"";position:absolute;left:0;right:0;top:50%;border-bottom:1px dotted rgba(0,0,0,.25);transform:translateY(-50%) scaleX(var(--lineScale,1));transform-origin:left;transition:transform .3s ease;z-index:0;-webkit-mask-image:linear-gradient(to right,#000 0 var(--hole1-start,0),transparent var(--hole1-start,0) var(--hole1-end,0),#000 var(--hole1-end,0) var(--hole2-start,100%),transparent var(--hole2-start,100%) var(--hole2-end,100%),#000 var(--hole2-end,100%) 100%);mask-image:linear-gradient(to right,#000 0 var(--hole1-start,0),transparent var(--hole1-start,0) var(--hole1-end,0),#000 var(--hole1-end,0) var(--hole2-start,100%),transparent var(--hole2-start,100%) var(--hole2-end,100%),#000 var(--hole2-end,100%) 100%)}.fromto .ft-key{grid-column:1;text-transform:uppercase;letter-spacing:.05em}.fromto .ft-key,.fromto .ft-value{background:transparent;padding:0 6px;position:relative;z-index:2}.fromto .ft-value{grid-column:3;justify-self:end}.slide-title h1{position:relative;display:inline-block}.slide-title h1.underline:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:#000;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.slide-title h1.underline.title-show:after{transform:scaleX(1)}.project-meta{width:100%;max-width:900px;margin:0 auto}.receipt-overlay{position:absolute;inset:0;pointer-events:none;z-index:50}.receipt-overlay .serial-code{position:absolute;left:24px;top:80px;font-family:DM Mono;font-size:24px;color:rgba(0,0,0,.35)}.receipt-overlay .corner-logo{position:absolute;left:50%;top:38px;width:16px;height:16px;border:1px solid rgba(0,0,0,.6);transform:translateX(-50%)}.receipt-overlay .crop{position:absolute;width:14px;height:14px}.receipt-overlay .crop:after,.receipt-overlay .crop:before{content:"";position:absolute;background:rgba(0,0,0,.35)}.receipt-overlay .crop-tl{left:16px;top:16px}.receipt-overlay .crop-tr{right:16px;top:16px}.receipt-overlay .crop-bl{left:16px;bottom:16px}.receipt-overlay .crop-br{right:16px;bottom:16px}.receipt-overlay .crop:before{width:14px;height:1px;left:0;top:0}.receipt-overlay .crop:after{width:1px;height:14px;left:0;top:0}.receipt-overlay .watermark{position:absolute;right:20px;bottom:16px;font-family:DM Mono;font-size:11px;color:rgba(0,0,0,.25)}.experience-list .receipt-overlay{z-index:0}.experience-list .exp-items,.experience-list .kv-row{position:relative;z-index:1}.experience-list .receipt-overlay .serial-code{top:28px;left:18px;opacity:.25}.micro-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;margin-top:8px;max-width:900px}.kv-key{font-variant-caps:all-small-caps;letter-spacing:.06em}.fromto,.kv-value,.nowplaying-row,.with-leaders{font-variant-numeric:tabular-nums}.copy-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:0;cursor:pointer;color:#000}.copy-btn:hover{text-decoration:underline}.tearoff{position:relative;padding-top:10px;margin-top:12px}.tearoff:before{content:"";position:absolute;left:0;right:0;top:0;border-top:1px dashed rgba(0,0,0,.3)}.tearoff .scissors{margin-right:8px;opacity:.6}.stamp-paid{position:absolute;right:24px;top:24px;padding:6px 10px;border:1px solid rgba(180,0,0,.5);color:rgba(180,0,0,.5);transform:rotate(-12deg);font-family:DM Mono;font-weight:700;letter-spacing:.1em}@media print{.paper:before,body{background:#fff!important}.project-center-arrow,.receipt-overlay,.slide-arrow-btn{display:none!important}}.kv-align{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.kv-align .kv-key{grid-column:2;justify-self:center}.kv-align .kv-value{grid-column:3;justify-self:end}details>summary{list-style:none}details>summary::-webkit-details-marker{display:none}@keyframes growTimeline{0%{width:0}to{width:100%}}.timeline-item{position:absolute;top:45%;display:flex;flex-direction:column;align-items:center;z-index:2;opacity:0;animation:fadeInItem .8s ease-out forwards;width:200px;height:150px}.timeline-item,.timeline-item:nth-child(2){transform:translateY(-50%) translateX(-50%)}.timeline-item:nth-child(2){left:10%;animation-delay:.5s}.timeline-item:nth-child(3){left:35%;animation-delay:1s;transform:translateY(-50%) translateX(-50%)}.timeline-item:nth-child(4){left:60%;animation-delay:1.5s;transform:translateY(-50%) translateX(-50%)}.timeline-item:nth-child(5){left:85%;animation-delay:2s;transform:translateY(-50%) translateX(-50%)}@keyframes fadeInItem{0%{opacity:0;transform:translateY(-50%) translateX(-50%) translateX(-20px)}to{opacity:1;transform:translateY(-50%) translateX(-50%) translateX(0)}}.timeline-dot{width:6px;height:6px;background-color:#000;border-radius:50%;flex-shrink:0;position:relative}.timeline-content{flex:1;font-family:DM Mono,monospace!important;color:#000;text-align:center;margin-top:1rem;height:120px;display:flex;flex-direction:column;justify-content:flex-start}.timeline-content .company{font-family:DM Mono,monospace;font-size:1.2rem;font-weight:600;margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.05em;opacity:1}.timeline-content .position{font-size:1rem;font-weight:500}.timeline-content .duration,.timeline-content .position{font-family:DM Mono,monospace;margin:0 0 .25rem;text-transform:uppercase;letter-spacing:.02em;opacity:1}.timeline-content .duration{font-size:.9rem;font-weight:400}.timeline-content .location{font-family:DM Mono,monospace;font-size:.8rem;font-weight:400;margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.02em;opacity:1}.timeline-content .description{font-family:DM Mono,monospace;font-size:.75rem;font-weight:400;margin:0;text-transform:none;letter-spacing:.01em;opacity:1;line-height:1.4;max-width:200px}.projects-container{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;max-width:1000px;z-index:11050;opacity:0;pointer-events:none;transition:opacity .28s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1)}.slide-arrow{transition:opacity .2s ease}.slide-arrow:hover:not(:disabled){opacity:.7!important}.project-navigation{display:flex;align-items:center;justify-content:center;margin:20px 0;pointer-events:auto}.project-arrow{transition:opacity .2s ease,color .2s ease}.project-arrow:hover:not(:disabled){opacity:.7!important}.projects-container.projects-visible{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.projects-container.projects-hidden{opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.95)}.project-slider-container{height:100vh;justify-content:center;padding:2rem;position:relative}.project-content,.project-slider-container{width:100%;display:flex;flex-direction:column;align-items:center}.project-content{max-width:900px;margin-top:-4rem;padding-top:1.5rem;margin-left:auto;margin-right:auto}.project-content,.project-meta{text-align:center}.project-title h2{font-family:DM Mono,monospace!important;font-size:2.5rem;font-weight:600;color:#000;margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.05em;line-height:1.2;position:relative;display:inline-block}.project-title h2:after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:#000;transition:width .25s ease}.project-title h2:hover:after{width:100%}.project-blurb{margin-bottom:1rem;opacity:0;transform:translateY(10px)}.project-blurb p{font-family:var(--font-geist-mono),monospace!important;font-size:.9rem;font-weight:400;color:#666;margin:0;text-transform:none;letter-spacing:.02em;font-style:italic}.project-pronunciation{margin-bottom:1rem;opacity:0;transform:translateY(10px)}.project-pronunciation p{font-family:var(--font-geist-mono),monospace!important;font-size:.9rem;font-weight:400;color:#666;margin:0;text-transform:none;letter-spacing:.05em;font-style:italic}.project-definition{margin-bottom:1rem;opacity:0;transform:translateY(10px)}.project-definition p{font-family:var(--font-geist-mono),monospace!important;font-size:1rem;font-weight:400;color:#000;text-transform:none;letter-spacing:.02em;line-height:1.6;max-width:600px;margin:0 auto}.project-summary{margin-bottom:1rem;opacity:0;transform:translateY(10px)}.project-summary p{font-family:var(--font-geist-mono),monospace!important;font-size:.85rem;font-weight:400;color:#666;text-transform:none;letter-spacing:.02em;line-height:1.5;max-width:600px;margin:0 auto;font-style:normal}.project-tags{display:flex;justify-content:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.tag{font-family:DM Mono,monospace!important;font-size:.7rem;font-weight:500;color:#000;background:none;border:none;padding:0;text-transform:uppercase;letter-spacing:.05em;transition:opacity .2s ease,transform .2s ease;opacity:0;transform:scale(.98);pointer-events:auto;cursor:default;position:relative}.tag:hover{transform:scale(1.02)}.project-technologies{margin-top:1rem;margin-bottom:1rem;text-align:center}.project-technologies h3{font-family:DM Mono,monospace!important;font-size:.8rem;font-weight:600;color:#000;margin:0 0 1rem;text-transform:uppercase;letter-spacing:.05em;opacity:0;transform:translateY(20px)}.tech-list{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap}.tech-item{font-family:DM Mono,monospace!important;font-size:.75rem;font-weight:400;color:#666;background:none;border:none;padding:.2rem .4rem;text-transform:none;letter-spacing:.02em;transition:all .2s ease;opacity:0;transform:translateY(10px) scale(.98);border-radius:3px}.tech-item:hover{color:#000;background:rgba(0,0,0,.05);transform:translateY(0) scale(1)}.project-year{position:static;margin-top:1rem;text-align:center}.project-year span{font-family:DM Mono,monospace!important;font-size:.8rem;font-weight:500;color:#000;margin:0;text-transform:uppercase;letter-spacing:.05em}@media (max-width:768px){.project-title h2{font-size:2rem}.project-definition p{font-size:.9rem}.project-tags{gap:.5rem}.tag{font-size:.6rem;padding:.3rem .6rem}.project-year{position:relative;top:auto;right:auto;margin-top:2rem;text-align:center}}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4cf2300e9c8272f7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_188709{font-family:Geist,Geist Fallback;font-style:normal}.__variable_188709{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/35f3de0ebb1cfc70-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e6099e249fd938cc-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Instrument Serif Fallback";src:local("Times New Roman");ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.00%;size-adjust:83.94%}.__className_315a98{font-family:"Instrument Serif","Instrument Serif Fallback";font-weight:400;font-style:normal}.__variable_315a98{--font-instrument-serif:"Instrument Serif","Instrument Serif Fallback"}