@import "https://fonts.googleapis.com/css2?family=Anton&family=Manrope:wght@400;600;800&display=swap";
:root{--bg-canvas:#eaeae5;--ink-void:#121212;--accent-signal:#f30;--font-headline:"Anton",sans-serif;--font-body:"Manrope",sans-serif;--spacing-edge:3vw}html{scroll-behavior:smooth}*{box-sizing:border-box;cursor:crosshair;margin:0;padding:0}::selection{background:var(--ink-void);color:var(--accent-signal)}body{background-color:var(--bg-canvas);color:var(--ink-void);font-family:var(--font-body);font-size:16px;line-height:1.5;position:relative;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:99999;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.05'/%3E%3C/svg%3E");width:100%;height:100%;position:fixed;top:0;left:0}@keyframes reveal{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.content-blur-in{animation:.8s cubic-bezier(.19,1,.22,1) both blurReveal}@keyframes blurReveal{0%{opacity:0;filter:blur(12px);transform:scale(.98)}to{opacity:1;filter:blur();transform:scale(1)}}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.app-wrapper{background:0 0;max-width:1600px;min-height:100vh;margin:0 auto;padding:15vh 4vw 0;position:relative}.content-container{max-width:100%}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb:hover{background:var(--accent-signal)}.site-navbar{text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #0000001a;justify-content:space-between;align-items:center;margin-bottom:6rem;padding:2rem 0;font-size:.85rem;font-weight:700;animation:1s cubic-bezier(.16,1,.3,1) .2s backwards reveal;display:flex}.navbar-logo{letter-spacing:-.05em;cursor:pointer;font-size:1.5rem;font-weight:900}.navbar-socials a{cursor:pointer;margin-left:2rem;font-size:.8rem;display:inline-block;position:relative}.navbar-socials a:after{content:"";background-color:var(--ink-void);width:0%;height:1px;transition:width .3s cubic-bezier(.16,1,.3,1);position:absolute;bottom:-2px;left:0}.navbar-socials a:hover:after{width:100%}.lang-toggle{border:1px solid var(--ink-void);text-transform:uppercase;cursor:pointer;background:0 0;margin-left:2rem;padding:.3rem .8rem;font-size:.75rem;font-weight:700;transition:all .3s}.lang-toggle:hover{background:var(--ink-void);color:var(--bg-canvas)}.hero-section{flex-direction:column;margin-bottom:15vh;padding-top:15vh;display:flex;position:relative}.name-wrapper{mix-blend-mode:darken;flex-direction:column;margin-bottom:4rem;line-height:.85;display:flex}.name-first,.name-last{font-family:var(--font-headline);text-transform:uppercase;color:var(--ink-void);letter-spacing:-.03em;font-size:clamp(4rem,15vw,16rem);transition:transform .6s cubic-bezier(.16,1,.3,1),opacity .3s;animation:1.2s cubic-bezier(.16,1,.3,1) backwards reveal;display:block}.name-wrapper:hover .name-first{color:var(--accent-signal);transform:translate(20px)}.name-wrapper:hover .name-last{-webkit-text-stroke:2px var(--ink-void);color:#0000;transform:translate(-20px)}.name-first{z-index:2;animation-delay:.2s}.name-last{color:var(--accent-signal);z-index:1;mix-blend-mode:multiply;margin-top:-.05em;animation-delay:.4s}.name-wrapper:hover .name-first{transform:translate(-20px)}.name-wrapper:hover .name-last{transform:translate(20px)}.hero-intro{text-align:right;border-top:1px solid var(--ink-void);align-self:flex-end;max-width:600px;padding-top:1.5rem;font-size:1.25rem;font-weight:500;line-height:1.4;animation:1.2s cubic-bezier(.16,1,.3,1) .6s backwards reveal}.tagline{display:none}.section{border-top:5px solid var(--ink-void);grid-template-columns:30vw 1fr;margin-bottom:10vh;padding-top:1rem;animation:1s cubic-bezier(.16,1,.3,1) backwards reveal;animation-timeline:view();animation-range:entry 10% cover 30%;display:grid}.section.full-bleed{border-top:none;padding-top:0;display:block}.section.full-bleed .section-title{color:var(--ink-void);opacity:.1;text-align:center;width:100%;margin-bottom:2rem;font-size:12vw;line-height:.8;position:static}.section-title{font-family:var(--font-headline);text-transform:uppercase;color:var(--accent-signal);font-size:4rem;line-height:1;position:sticky;top:2rem}.experience-list{flex-direction:column;display:flex}.experience-item{cursor:pointer;border-bottom:1px solid #e0e0e0;padding:2rem 0;transition:all .4s cubic-bezier(.16,1,.3,1)}.experience-item:hover{color:var(--ink-void);border-left:10px solid var(--accent-signal);z-index:2;background:#fff;padding-left:2rem;position:relative;transform:translate(10px);box-shadow:15px 15px #0000000d}.experience-item:hover .exp-role{color:var(--ink-void)}.experience-item:hover .exp-date{color:var(--accent-signal)}.experience-item:hover p{color:var(--ink-void)!important}.experience-item:hover span{color:var(--ink-void);border-color:var(--ink-void)!important}.tech-list-wrapper{flex-wrap:wrap;gap:1rem;display:flex}.tech-row{border:2px solid var(--ink-void);text-transform:uppercase;cursor:pointer;background:#fff;align-items:center;gap:.5rem;padding:1rem 2rem;font-size:1.25rem;font-weight:800;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex}.tech-row:hover{background:var(--ink-void);color:#fff;box-shadow:10px 10px 0px var(--accent-signal);transform:rotate(-3deg)scale(1.1)}.tech-row-index,.tech-row-tags{display:none}.tech-row-icon,.tech-row svg{width:24px;height:24px;display:none}.about-text p{max-width:40ch;margin-bottom:2rem;font-size:2rem;font-weight:600;line-height:1.4}.pills{flex-wrap:wrap;gap:1rem;display:flex}.pills button{font-family:var(--font-headline);text-transform:uppercase;cursor:pointer;color:var(--ink-void);border-bottom:3px solid #0000;padding:0 1rem;font-size:3rem;transition:all .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.pills button:before,.footer-pro-btn:before{content:"";background:var(--accent-signal);z-index:-1;width:100%;height:100%;transition:transform .4s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:0;transform:translateY(100%)}.pills button:hover:before,.footer-pro-btn:hover:before{transform:translateY(0)}.pills button:hover{color:#fff;border-bottom-color:#0000;transform:skew(-10deg)}.reveal-up{opacity:0;transition:all 1s cubic-bezier(.16,1,.3,1);transform:translateY(60px)}.reveal-up.in-view{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transition:all 1s cubic-bezier(.16,1,.3,1);transform:translate(-40px)}.reveal-left.in-view{opacity:1;transform:translate(0)}.reveal-stagger{opacity:0;transition:all .8s cubic-bezier(.16,1,.3,1);transform:translateY(30px)}.reveal-stagger.in-view{opacity:1;transform:translateY(0)}.reveal-stagger:first-child{transition-delay:.1s}.reveal-stagger:nth-child(2){transition-delay:.2s}.reveal-stagger:nth-child(3){transition-delay:.3s}.reveal-stagger:nth-child(4){transition-delay:.4s}.reveal-stagger:nth-child(5){transition-delay:.5s}.reveal-stagger:nth-child(6){transition-delay:.6s}.footer-pro{border-top:10px solid var(--ink-void);text-align:center;margin-top:20vh;padding-top:4rem}.footer-pro-heading{font-family:var(--font-headline);text-transform:uppercase;margin-bottom:2rem;font-size:10vw;line-height:.9;transition:letter-spacing .5s}.footer-pro-heading:hover{letter-spacing:-.02em;color:var(--accent-signal)}.footer-pro-buttons{justify-content:center;gap:2rem;display:flex}.footer-pro-btn{border:2px solid var(--ink-void);color:var(--ink-void);text-transform:uppercase;cursor:pointer;z-index:1;background:0 0;padding:1.5rem 4rem;font-size:1.2rem;font-weight:800;transition:all .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.footer-pro-btn:hover{box-shadow:10px 10px 0px var(--ink-void);color:#fff;border-color:var(--accent-signal);transform:scale(1.05)translateY(-5px)}.primary{background:var(--ink-void);color:#fff}.primary:hover{color:var(--ink-void);background:0 0}.primary:before{background:#fff}.primary:hover:before{background:var(--accent-signal);transform:translateY(0)}@media (max-width:768px){.section{grid-template-columns:1fr}.section-title{margin-bottom:2rem;font-size:3rem;position:static}.hero-intro{text-align:left;max-width:100%}.name-first,.name-last{font-size:20vw}.tech-editorial-header{grid-template-columns:1fr!important;gap:1rem!important}}.featured-showcase{margin-top:4rem;position:relative}.featured-card{background:var(--ink-void);color:#fff;border:1px solid var(--ink-void);cursor:pointer;grid-template-columns:1.2fr .8fr;align-items:center;gap:3rem;padding:2rem;transition:all .4s cubic-bezier(.16,1,.3,1);display:grid;position:relative;overflow:hidden}.featured-card:hover{box-shadow:15px 15px 0 var(--accent-signal);transform:translateY(-10px)}.featured-title{font-family:var(--font-headline);color:#fff;text-transform:uppercase;font-size:3.5rem;line-height:1}.featured-desc{color:#ccc;max-width:90%;font-size:1.1rem;line-height:1.6}.featured-badge{color:#fff;font-family:var(--font-headline);text-transform:uppercase;letter-spacing:.05em;border:1px solid #fff;align-self:flex-start;margin-bottom:1rem;padding:.5rem 1rem;font-size:.9rem;transition:all .3s;display:inline-block}.featured-card:hover .featured-badge{color:var(--ink-void);background:#fff}.featured-btn{color:#fff;text-transform:uppercase;background:0 0;border:1px solid #fff;align-self:flex-start;width:auto;margin-top:1rem;padding:1rem 2rem;font-weight:700;transition:all .3s;position:relative;overflow:hidden}.featured-btn span{z-index:2;position:relative}.featured-btn:before{content:"";background:var(--accent-signal);z-index:0;width:100%;height:100%;transition:transform .4s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:0;transform:translateY(100%)}.featured-card:hover .featured-btn{border-color:var(--accent-signal)}.featured-card:hover .featured-btn:before{transform:translateY(0)}.featured-image-wrapper{aspect-ratio:16/10;border:1px solid #333;position:relative;overflow:hidden}.featured-image{object-fit:cover;filter:grayscale(20%);width:100%;height:100%;transition:transform .8s cubic-bezier(.16,1,.3,1)}.featured-card:hover .featured-image{filter:grayscale(0%);transform:scale(1.05)}@media (max-width:1024px){.featured-card{grid-template-columns:1fr;gap:2rem}.featured-image-wrapper{order:-1}}.browser-modal-overlay{z-index:10000;perspective:1000px;justify-content:center;align-items:center;width:100vw;height:100vh;padding:2rem;display:flex;position:fixed;top:0;left:0}.browser-backdrop{-webkit-backdrop-filter:blur(16px);z-index:1;opacity:0;background:#14141499;width:100%;height:100%;animation:.4s forwards fadeIn;position:absolute;top:0;left:0}.browser-modal-window{width:100%;max-width:1200px;height:85vh;box-shadow:15px 15px 0 var(--ink-void);z-index:2;border:3px solid var(--ink-void);background:#fff;border-radius:12px;flex-direction:column;display:flex;position:relative;overflow:hidden}.browser-header{border-bottom:3px solid var(--ink-void);background:linear-gradient(#f6f6f6,#e9e9e9);grid-template-columns:1fr auto;align-items:center;padding:1rem;display:grid;box-shadow:inset 0 1px #ffffff80}.browser-controls{gap:8px;display:flex}.control-dot{border-radius:50%;width:12px;height:12px;display:inline-block;position:relative;box-shadow:inset 0 1px 2px #0003}.control-dot.close{cursor:pointer;background:#ff5f56;border:1px solid #e0443e}.control-dot.min{background:#ffbd2e;border:1px solid #dea123}.control-dot.max{background:#27c93f;border:1px solid #1aab29}.control-dot.close:hover:after{content:"×";color:#8b0000;font-size:10px;font-weight:700;position:absolute;top:-1px;left:3px}.browser-address-bar{border:2px solid var(--ink-void);color:#333;background:#fff;border-radius:0;align-items:center;margin:0 1rem;padding:5px 1rem;font-family:SF Mono,Fira Code,monospace;font-size:.8rem;display:flex;box-shadow:inset 0 1px 1px #0000000d}.lock-icon-svg{color:#555;width:14px;height:14px;margin-right:8px}.browser-actions{justify-content:flex-end;gap:4px;display:flex}.action-icon{color:#555;cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;transition:background .2s;display:flex}::-webkit-scrollbar-thumb{background:var(--ink-void);border-radius:4px}.action-icon:hover{color:var(--accent-signal);background:#0000001a}.action-icon svg{width:18px;height:18px}.mobile-close-btn{display:none}.browser-content{background:#fff;flex:1;position:relative}.browser-iframe{border:none;width:100%;height:100%}.modal-enter{animation:.9s cubic-bezier(.19,1,.22,1) forwards modalPop}.modal-exit{animation:.7s cubic-bezier(1,0,0,1) forwards modalDrop}@keyframes modalPop{0%{opacity:0;transform:scale(.95)translateY(40px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes modalDrop{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.98)translateY(20px)}}.browser-backdrop.backdrop-exit{animation:.7s forwards backdropFadeOut}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes backdropFadeOut{0%{opacity:1}to{opacity:0}}@media (max-width:768px){.browser-modal-overlay{align-items:flex-start;padding:0!important}.browser-modal-window{width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;box-shadow:none!important;border:none!important;border-radius:0!important}.main-content-slide{box-shadow:0 10px 30px -10px #0003!important}.resume-modal-content{border:none!important;border-radius:0!important;width:100vw!important;max-width:none!important;height:100dvh!important;padding-top:60px!important}.experience-item{flex-direction:column!important;gap:.5rem!important}.project-year{margin-bottom:.5rem!important;transform:none!important}.exp-role{font-size:1.5rem!important}.footer-top-grid{grid-template-columns:1fr;gap:4rem}.footer-photo-frame{width:100%;max-width:100%}.footer-email{font-size:10vw!important}.cta-box{text-align:center;width:100%;font-size:2.5rem;transform:rotate(0)}.wireframe-globe{width:200px;height:200px;bottom:-80px;left:50%;transform:translate(-50%)}.name-first,.name-last{font-size:20vw!important}}.footer-typo{border-top:5px solid var(--ink-void);background-color:var(--bg-canvas);box-sizing:border-box;width:100%;margin:0;padding:4rem 4vw;position:relative;overflow:hidden}.main-content-slide{border-bottom:1px solid #0000001a;box-shadow:0 50px 100px -20px #00000040}.typo-container{mix-blend-mode:darken;flex-direction:column;justify-content:center;align-items:center;min-height:40vh;margin-bottom:4rem;display:flex}.typo-link{cursor:pointer;flex-direction:column;align-items:center;text-decoration:none;display:flex}.footer-line-1,.footer-line-2{font-family:var(--font-headline);text-transform:uppercase;color:var(--ink-void);white-space:nowrap;text-align:center;font-size:clamp(6rem,18vw,24rem);line-height:.75;transition:transform .6s cubic-bezier(.16,1,.3,1)}.footer-line-1{z-index:2}.footer-line-2{color:var(--accent-signal);mix-blend-mode:multiply;z-index:1;margin-top:-.05em}.typo-link:hover .footer-line-1{transform:translate(-30px)skew(-2deg)}.typo-link:hover .footer-line-2{transform:translate(30px)skew(-2deg)}.footer-meta{text-transform:uppercase;letter-spacing:.05em;border-top:1px solid #0000001a;justify-content:space-between;align-items:flex-end;width:100%;margin-top:auto;padding:2rem 0 0;font-size:.85rem;font-weight:700;display:flex}.footer-col h3{color:#888;margin-bottom:1rem;font-size:.75rem}.footer-links{gap:2rem;display:flex}.footer-links a{color:var(--ink-void);text-decoration:none;position:relative}.footer-links a:after{content:"";background:var(--accent-signal);width:0%;height:1px;transition:width .3s;position:absolute;bottom:-2px;left:0}.footer-links a:hover{color:var(--accent-signal)}.footer-links a:hover:after{width:100%}.footer-col.right{text-align:right}@media (max-width:768px){.footer-line-1,.footer-line-2{font-size:22vw}.footer-meta{flex-direction:column;align-items:flex-start;gap:2rem;width:100%}.footer-col{width:100%}.footer-links{justify-content:space-between;width:100%}.footer-col.right{text-align:left}}.tech-categories-wrapper{grid-template-columns:repeat(2,1fr);gap:3rem;width:100%;margin-top:2rem;display:grid}.tech-category{flex-direction:column;gap:1rem;display:flex}.tech-category-title{font-family:var(--font-headline);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-light);margin-bottom:.5rem;padding-bottom:.5rem;font-size:1.5rem}.tech-items-grid{flex-wrap:wrap;gap:.75rem;display:flex}.tech-pill{border:1px solid var(--ink-void);color:var(--ink-void);z-index:1;background:0 0;border-radius:0;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:all .2s cubic-bezier(.19,1,.22,1);position:relative}.tech-pill:after{content:"";background:var(--accent-signal);z-index:-1;opacity:0;width:100%;height:100%;transition:all .2s cubic-bezier(.19,1,.22,1);position:absolute;top:0;left:0;transform:translate(0)}.tech-pill:hover{background:var(--ink-void);color:#fff;border-color:var(--ink-void);font-weight:800;transform:skew(-10deg)translateY(-4px)}.tech-pill:hover:after{opacity:1;transform:translate(6px,6px)}@media (max-width:768px){.tech-categories-wrapper{grid-template-columns:1fr;gap:2rem}}.hero-resume-btn{background:var(--ink-void);color:var(--bg-canvas);font-family:var(--font-headline);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;border:none;width:fit-content;margin-top:2.5rem;padding:1rem 2.5rem;font-size:1.25rem;transition:all .3s cubic-bezier(.19,1,.22,1);position:relative}.hero-resume-btn:hover{background:var(--accent-signal);color:#fff;transform:skew(-10deg)translateY(-4px);box-shadow:6px 6px #0000001a}.driver-popover{color:#fff!important;font-family:var(--font-body)!important;background:#0a0a0a!important;border:1px solid #333!important;border-radius:0!important;max-width:320px!important;box-shadow:0 20px 60px #00000080!important}.driver-popover-title{font-family:var(--font-headline)!important;letter-spacing:.03em!important;color:#fff!important;font-size:1.25rem!important}.driver-popover-description{color:#999!important;font-size:.9rem!important;line-height:1.5!important}.driver-popover-progress-text{color:var(--accent-signal)!important;letter-spacing:.15em!important;font-family:monospace!important;font-size:.7rem!important}.driver-popover-navigation-btns{gap:1rem!important}.driver-popover-next-btn,.driver-popover-prev-btn{color:#000!important;cursor:pointer!important;text-shadow:none!important;background:#fff!important;border:none!important;border-radius:0!important;padding:.5rem 1.25rem!important;font-family:monospace!important;font-size:.8rem!important;font-weight:700!important}.driver-popover-prev-btn{color:#666!important;background:0 0!important;text-decoration:underline!important}.driver-popover-close-btn{color:#666!important}.driver-popover-close-btn:hover{color:#fff!important}.driver-active-element{outline:2px dashed var(--accent-signal)!important;outline-offset:8px!important}.project-page-wrapper{cursor:default}.project-floating-preview{pointer-events:none;z-index:9999;mix-blend-mode:normal;border:4px solid var(--ink-void);background:var(--bg-canvas);transform-origin:50%;width:400px;height:250px;position:fixed;top:0;left:0;overflow:hidden}.project-floating-preview img{object-fit:cover;filter:grayscale()contrast(1.2);width:100%;height:100%}.project-archive{border-top:2px solid var(--ink-void);flex-direction:column;width:100%;display:flex}.archive-header{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.05em;opacity:.5;border-bottom:1px solid var(--ink-void);grid-template-columns:2fr 1fr 1fr 1fr;margin-bottom:0;padding:1rem 0;font-size:.85rem;display:grid}.archive-row{cursor:pointer;border-bottom:1px solid #12121233;grid-template-columns:2fr 1fr 1fr 1fr;align-items:center;padding:2.5rem 0;transition:all .4s cubic-bezier(.16,1,.3,1);display:grid;position:relative}.archive-row.dimmed{opacity:.3;filter:blur(1px)}.archive-row.active{opacity:1;z-index:10;border-bottom-color:var(--ink-void);background:0 0}.row-title{font-family:var(--font-headline);text-transform:uppercase;color:var(--ink-void);align-items:center;gap:1rem;margin:0;font-size:3.5rem;line-height:.9;transition:transform .4s cubic-bezier(.16,1,.3,1),color .3s;display:flex}.row-arrow{opacity:0;color:var(--accent-signal);font-size:2rem;transition:all .4s cubic-bezier(.16,1,.3,1);transform:translate(-20px)}.row-col.meta{text-transform:uppercase;letter-spacing:.05em;font-family:Manrope,sans-serif;font-size:.9rem;font-weight:600}.archive-row:hover .row-title{color:#0000;-webkit-text-stroke:1px var(--ink-void);transform:translate(20px)}.archive-row:hover .row-arrow{opacity:1;transform:translate(0)}@media (max-width:1024px){.project-floating-preview{display:none!important}.archive-header,.archive-row{grid-template-columns:1fr auto}.hide-mobile{display:none}.row-title{font-size:2.5rem}.archive-row:hover .row-title{-webkit-text-stroke:0;color:var(--accent-signal);transform:translate(10px)}}
