@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:"Space Mono", "Space Mono Fallback: Courier New", "Space Mono Fallback: Roboto Mono", "Space Mono Fallback: Noto Sans Mono",monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:"Space Mono",monospace;--font-body:"Space Grotesk", "Space Grotesk Fallback: BlinkMacSystemFont", "Space Grotesk Fallback: Segoe UI", "Space Grotesk Fallback: Helvetica Neue", "Space Grotesk Fallback: Arial", "Space Grotesk Fallback: Noto Sans",sans-serif;--font-display:"Syne", "Syne Fallback: BlinkMacSystemFont", "Syne Fallback: Segoe UI", "Syne Fallback: Helvetica Neue", "Syne Fallback: Arial", "Syne Fallback: Noto Sans",sans-serif;--ease:cubic-bezier(.19,1,.22,1)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{border:0 solid;box-sizing:border-box;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box;cursor:none!important;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg);color:var(--fg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden;text-rendering:optimizelegibility;transition:background-color .4s var(--ease),color .4s var(--ease)}::-moz-selection{background-color:var(--accent);color:var(--pure-white)}::selection{background-color:var(--accent);color:var(--pure-white)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:800;letter-spacing:-.04em;line-height:.9;text-transform:uppercase}a{color:inherit;text-decoration:none}section{border-bottom:1px solid var(--border);padding:8vw 0;position:relative;scroll-margin-top:5rem;transition:border-color .4s var(--ease)}.nav-logo-anim{animation:logoGlitch 4s infinite alternate}@keyframes logoGlitch{0%,90%{filter:drop-shadow(0 0 #ff3b0000);opacity:1;transform:translate(0)}92%{filter:drop-shadow(2px 2px #ff3b0080);opacity:.9;transform:translate(-2px,1px)}94%{filter:drop-shadow(-2px -2px #ff3b0080);opacity:.8;transform:translate(2px,-1px)}96%{filter:drop-shadow(1px -1px #ff3b0080);opacity:.9;transform:translate(-1px,2px)}98%{filter:drop-shadow(-1px 1px #ff3b0080);opacity:1;transform:translate(1px,-2px)}to{filter:drop-shadow(0 0 #ff3b0000);opacity:1;transform:translate(0)}}}@layer components{.mono{font-family:var(--font-mono);font-size:.85rem;letter-spacing:.05em;text-transform:uppercase}.cursor-circle,.cursor-dot{left:0;mix-blend-mode:difference;pointer-events:none;position:fixed;top:0;transform-origin:50%;z-index:10000}.cursor-dot{background:#fff;border-radius:50%;height:8px;width:8px}.cursor-circle{border:1px solid #fff6;border-radius:50%;height:40px;transition:width .3s var(--ease),height .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease);width:40px}body:hover .cursor-circle.active{background:#ffffff1a;border-color:#fff;height:80px;width:80px}.noise{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyBAMAAADsEZWCAAAAGFBMVEUAAAAAAAABAwMEBAYFBgYHCQgJCwwNDg7gH3/6AAAAAXRSTlMAQObYZgAAAIJJREFUOMtjdFRhYGRgEBRiZGBwBBKCDgwMhgwQjJEQxIBoEBxEYBCEQyEUEgJBMASGQigkBIJgCAyFUEgIQaFgDAgOBRCEwkEwFEEQGAoHEBwKURAEgqEIgkMhFAqBQQyCIBwKQZARCMIgCMKBEIThIAjCcRAEQzgIAoMwEATBQRAAAI/OQf5X51c5AAAAAElFTkSuQmCC);background-repeat:repeat;height:100vh;mix-blend-mode:difference;opacity:.03;width:100vw;z-index:9999}.noise,.orb{left:0;pointer-events:none;position:fixed;top:0}.orb{background:radial-gradient(circle,rgba(var(--bg-rgb),.02) 0,transparent 60%);border-radius:50%;filter:blur(40px);height:50vw;width:50vw;z-index:-2}.grid-line{background:var(--border);height:100vh;left:4vw;opacity:.3;position:fixed;top:0;transition:background .4s var(--ease);width:1px;z-index:-1}.grid-line.right{left:auto;right:4vw}.corner{border:1px solid var(--fg);height:15px;opacity:.5;pointer-events:none;position:fixed;transition:border-color .4s var(--ease);width:15px;z-index:99}.corner-tl{border-right:none;left:2vw}.corner-tl,.corner-tr{border-bottom:none;top:2vw}.corner-tr{border-left:none;right:2vw}.corner-bl{border-right:none;left:2vw}.corner-bl,.corner-br{border-top:none;bottom:2vw}.corner-br{border-left:none;right:2vw}.hero{align-items:center;border-bottom:1px solid var(--border);display:flex;height:100vh;min-height:600px;overflow:hidden;padding-bottom:max(2rem,4vh);padding-top:max(4rem,8vh);position:relative}.hero-bg-text{color:#0000;font-family:var(--font-display);font-size:20vw;letter-spacing:-.05em;pointer-events:none;white-space:nowrap;z-index:0;-webkit-text-stroke:1px #8080801a;position:absolute;right:0;top:50%;transform:translateY(-50%)}[data-theme=light] .hero-bg-text{-webkit-text-stroke:1px #0000000d}.hero-grid{align-items:center;display:grid;gap:4vw;grid-template-columns:1fr 1fr;position:relative;width:100%;z-index:2}.hero-label{align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:100px;color:var(--fg);display:inline-flex;font-size:clamp(.7rem,1vw,.85rem);gap:1rem;margin-bottom:min(3rem,5vh);padding:.5rem 1.5rem}.hero-headline{color:var(--bg);-webkit-text-stroke:1px var(--border);font-size:clamp(3.5rem,5vw,7rem);line-height:.85;margin:0;text-shadow:1px 1px 0 var(--border),2px 2px 0 var(--border),3px 3px 0 var(--border),4px 4px 0 var(--border),5px 5px 0 var(--border),6px 6px 0 var(--border);transition:text-shadow .4s var(--ease),-webkit-text-stroke .4s var(--ease)}.hero-headline span{animation:staggerUp 1s var(--ease) forwards;display:block;opacity:0;transform:translateY(min(100px,10vh));transition:all .4s var(--ease)}.hero-headline span:nth-child(2){animation-delay:.2s;margin-left:10%}.hero-headline:hover span{color:var(--fg);-webkit-text-stroke:1px transparent;text-shadow:1px 1px 0 var(--accent),2px 2px 0 var(--accent),3px 3px 0 var(--accent),4px 4px 0 var(--accent),5px 5px 0 var(--accent),6px 6px 0 var(--accent),10px 10px 20px #ff3b0066;transform:translate(-4px,-4px)}.hero-col-left{position:relative;z-index:10}.hero-desc-box{animation:fadeIn 1.5s 1s forwards;display:flex;flex-direction:column;gap:min(2rem,4vh);margin-top:min(2rem,4vh);max-width:550px;opacity:0}.hero-desc-box p{color:var(--muted);font-size:clamp(1rem,1.25vw,1.25rem);line-height:1.5}.hero-photo-container{align-items:center;animation:staggerUp 1s var(--ease) .5s forwards;display:flex;justify-content:flex-end;margin:0 auto;opacity:0;position:relative;transform:translateY(40px);width:100%}.hero-photo-container:before{border:2px solid var(--muted);content:"";height:100%;left:20px;pointer-events:none;position:absolute;top:20px;transition:all .4s var(--ease);width:100%;z-index:1}.hero-photo{aspect-ratio:4/5;border:1px solid var(--border);display:block;filter:grayscale()contrast(1.1);max-height:85vh;-o-object-fit:cover;object-fit:cover;position:relative;transition:transform .4s var(--ease),filter .4s var(--ease);width:100%;z-index:2}.hero-photo-container:hover .hero-photo{filter:grayscale(0)contrast();transform:translate(5px,5px)}.hero-photo-container:hover:before{border-color:var(--accent);left:15px;top:15px}[data-theme=light] .hero-photo{filter:grayscale()contrast(1.1)brightness(1.1)}.scroll-down{align-items:center;animation:fadeIn 1.5s 1.2s forwards;bottom:0;display:flex;gap:1rem;left:4vw;opacity:0;padding-bottom:min(2rem,4vh);position:absolute;transform:rotate(180deg);writing-mode:vertical-rl;z-index:5}.scroll-line{background:#8080804d;height:100px;overflow:hidden;position:relative;width:1px}.scroll-line:after{animation:scroll-anim 2s cubic-bezier(.77,0,.175,1) infinite;background:var(--fg);content:"";height:100%;left:0;position:absolute;top:0;width:100%}.section-header{border-bottom:1px solid var(--border);display:flex;justify-content:space-between;margin-bottom:6vw;padding-bottom:2rem;transition:border-color .4s var(--ease)}.about-grid{display:grid;gap:4vw;grid-template-columns:repeat(3,1fr)}.about-grid>div{grid-column:2/8}.about-text{font-family:var(--font-display);font-size:3.5vw;letter-spacing:-1px;line-height:1.1}.about-text .highlight{color:var(--pure-white)}.about-sub{color:var(--muted);font-size:1.1rem;margin-top:3rem;max-width:500px}.skills-container{background:var(--border);border:1px solid var(--border);display:grid;gap:1px;grid-template-columns:repeat(4,1fr);transition:background .4s var(--ease),border-color .4s var(--ease)}.skill-box{align-items:center;background:var(--bg);display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding:4rem 2rem;position:relative;text-align:center;transition:all .4s var(--ease)}.skill-box:after{background:var(--fg);content:"";height:100%;left:0;position:absolute;top:0;transform:scaleY(0);transform-origin:top;transition:transform .4s var(--ease);width:100%;z-index:0}.skill-box:hover:after{transform:scaleY(1);transform-origin:bottom}.skill-box>*{position:relative;transition:color .4s var(--ease);z-index:1}.skill-box:hover>*{color:var(--bg)}.icon-wrapper{align-items:center;display:inline-flex;justify-content:center;margin-bottom:1rem;position:relative}.skill-icon{color:var(--muted);font-size:2.5rem;height:2.5rem;transition:color .4s var(--ease);width:2.5rem}.scanner-overlay{animation:iconScanOverlay 1.2s ease-in-out forwards;clip-path:polygon(0 0,0 0,0 100%,0 100%);color:var(--accent)!important;filter:blur(5px);height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;will-change:clip-path}@keyframes iconScanOverlay{0%{clip-path:polygon(0 0,20% 0,20% 100%,0 100%)}90%{clip-path:polygon(80% 0,100% 0,100% 100%,80% 100%)}to{clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%)}}.skill-name{font-family:var(--font-display);font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.projects-grid{display:grid;gap:4vw;grid-template-columns:repeat(2,1fr)}.project-card{aspect-ratio:4/5;background:var(--bg);display:block;overflow:hidden;position:relative}.bracket-bl,.bracket-br,.bracket-tl,.bracket-tr{border:2px solid var(--accent);height:30px;opacity:0;pointer-events:none;position:absolute;transition:all .6s var(--ease);width:30px;z-index:5}.bracket-tl{border-right:none;left:-20px}.bracket-tl,.bracket-tr{border-bottom:none;top:-20px}.bracket-tr{border-left:none;right:-20px}.bracket-bl{border-right:none;left:-20px}.bracket-bl,.bracket-br{border-top:none;bottom:-20px}.bracket-br{border-left:none;right:-20px}.project-card.is-touched .bracket-tl,.project-card:hover .bracket-tl{left:20px;opacity:1;top:20px}.project-card.is-touched .bracket-tr,.project-card:hover .bracket-tr{opacity:1;right:20px;top:20px}.project-card.is-touched .bracket-bl,.project-card:hover .bracket-bl{bottom:20px;left:20px;opacity:1}.project-card.is-touched .bracket-br,.project-card:hover .bracket-br{bottom:20px;opacity:1;right:20px}.project-image{filter:grayscale()brightness(.5)contrast(1.2);height:100%;left:0;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;position:absolute;top:0;transition:all .7s var(--ease);width:100%}.project-card.is-touched .project-image,.project-card:hover .project-image{filter:grayscale(0)brightness(.9)contrast();transform:scale(1.03)}.project-overlay{background:linear-gradient(#0000,#000000e6);bottom:0;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;left:0;opacity:0;padding:3rem;position:absolute;transform:translateY(20px);transition:all .5s var(--ease);width:100%}.project-card.is-touched .project-overlay,.project-card:hover .project-overlay{opacity:1;transform:translateY(0)}.project-title{color:#fff;font-size:min(2rem,6vw);line-height:1.1;margin-bottom:1rem}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem}.project-tags span{background:#00000080;border:1px solid var(--border);color:var(--accent);padding:.2rem .5rem}[data-theme=light] .project-tags span{border-color:#fff3}.timeline{border-left:1px solid var(--border);margin-left:200px;max-width:900px;padding-bottom:2rem;padding-left:4vw;position:relative;transition:border-color .4s var(--ease)}.timeline-item{padding-bottom:6vw;position:relative;transition:all .8s var(--ease)}.timeline-item:before{animation:dotPulse 2s ease-in-out infinite;background:var(--accent);border:2px solid var(--accent);border-radius:50%;content:"";height:12px;left:calc(-4vw - 6px);position:absolute;top:10px;transition:all .4s;width:12px;z-index:2}@keyframes dotPulse{0%,to{box-shadow:0 0 #ff3b0066}50%{box-shadow:0 0 0 8px #ff3b0000}}.timeline-item:hover:before{animation:none;box-shadow:0 0 12px #ff3b0099;transform:scale(1.4)}.timeline-year{left:calc(-4vw - 200px);position:absolute;text-align:right;top:5px;width:180px}.timeline-role{font-size:2.5rem;margin-bottom:.5rem}.timeline-company{color:var(--pure-white);font-family:var(--font-mono);font-size:1rem;margin-bottom:1.5rem}.timeline-desc{max-width:600px}.contact-content{align-items:center;display:grid;gap:8vw;grid-template-columns:1fr 1fr}.contact-heading{color:var(--fg);font-size:clamp(3rem,7vw,7rem);text-shadow:2px 2px 0 var(--border);transition:text-shadow .4s var(--ease)}.form-group,form{position:relative}.form-group{margin-bottom:3rem}.form-control{background:0 0;border:none;border-bottom:1px solid var(--border);color:var(--fg);font-family:var(--font-body);font-size:1.25rem;padding:1rem 0;pointer-events:auto;transition:border-color .3s;width:100%}.form-control:focus{border-bottom-color:var(--accent);outline:none}.form-control::-moz-placeholder{color:var(--muted);font-family:var(--font-mono);font-size:.85rem;text-transform:uppercase}.form-control::placeholder{color:var(--muted);font-family:var(--font-mono);font-size:.85rem;text-transform:uppercase}.form-control.is-invalid{border-bottom-color:#ff3b00}.error-text{bottom:-1.5rem;color:#ff3b00;font-size:.75rem;left:0;position:absolute}.success-message{align-items:center;background:#10b9810d;border:1px solid #10b981;color:#10b981;display:flex;font-size:.9rem;gap:.5rem;margin-bottom:2rem;padding:1rem}.success-icon{font-size:1.25rem}.fade-enter-active,.fade-leave-active{transition:opacity .5s var(--ease),transform .5s var(--ease)}.fade-enter-from,.fade-leave-to{opacity:0;transform:translateY(10px)}button.submit-btn:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}button.submit-btn{background:0 0;border:1px solid var(--border);color:var(--fg);font-family:var(--font-display);font-size:1.25rem;font-weight:700;overflow:hidden;padding:1.5rem 3rem;pointer-events:auto;position:relative;transition:all .4s var(--ease);width:100%}button.submit-btn:before{background:var(--fg);content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)rotate(-5deg);transition:height .4s var(--ease);width:120%;z-index:-1}button.submit-btn:hover{border-color:var(--fg);color:var(--bg)}button.submit-btn:hover:before{height:350%}.footer{align-items:center;border-top:1px solid var(--border);display:flex;justify-content:space-between;padding:3rem 4vw;transition:border-color .4s var(--ease)}.social-links{display:flex;gap:2rem}.social-links a{color:var(--pure-white);position:relative}.social-links a:after{background:var(--accent);bottom:-4px;content:"";height:1px;left:0;position:absolute;transform:scaleX(0);transition:transform .3s;width:100%}.social-links a:hover:after{transform:scaleX(1)}.reveal{opacity:0;transform:translateY(60px);transition:all 1s var(--ease)}.reveal.active{opacity:1;transform:translateY(0)}nav{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(var(--bg-rgb),.7);border-bottom:1px solid var(--border);display:flex;height:5rem;justify-content:space-between;left:0;padding:0 4vw;position:fixed;top:0;transition:background .4s var(--ease),border-color .4s var(--ease);width:100%;z-index:100}.logo{font-family:var(--font-display);font-size:2rem;font-weight:800;letter-spacing:-2px}.nav-links{display:flex;gap:3vw;left:50%;position:absolute;transform:translate(-50%)}.nav-links a{color:var(--fg);font-family:var(--font-mono);font-size:.75rem;overflow:hidden;position:relative}.nav-links a:before{background:var(--fg);bottom:-2px;content:"";height:1px;left:0;position:absolute;transform:scaleX(0);transform-origin:100%;transition:transform .4s var(--ease);width:100%}.nav-links a:hover:before{transform:scaleX(1);transform-origin:0}.nav-right{align-items:center;display:flex;gap:2rem}.hamburger{display:none;font-family:var(--font-mono);font-size:.85rem}.theme-toggle-btn{align-items:center;background:0 0;border:1px solid var(--border);color:var(--fg);display:flex;font-family:var(--font-mono);font-size:.75rem;gap:.5rem;padding:.5rem 1rem;transition:all .3s var(--ease)}.theme-toggle-btn:hover{background:var(--fg);color:var(--bg)}.mobile-menu{align-items:center;background:var(--bg);display:flex;flex-direction:column;height:100vh;justify-content:center;left:0;position:fixed;top:0;transform:translateY(-100%);transition:transform .6s var(--ease),background .4s var(--ease);width:100%;z-index:98}.mobile-menu.open{transform:translateY(0)}.mobile-menu-close{align-items:center;background:0 0;border:none;color:var(--fg);cursor:pointer;display:flex;font-size:2rem;justify-content:center;padding:.5rem;position:absolute;right:4vw;top:2rem;transition:color .3s var(--ease),transform .3s var(--ease)}.mobile-menu-close:hover{color:var(--accent);transform:rotate(90deg)}.mobile-menu a{color:var(--fg);display:block;font-family:var(--font-display);font-size:3rem;margin:1rem 0}.container{margin:0 auto;max-width:1920px;padding:0 4vw}.metrics{display:flex;gap:3rem}.metric{display:flex;flex-direction:column;gap:.25rem}.metric-val{font-size:clamp(2rem,3.5vw,3.5rem);font-weight:700;line-height:1}.metric-val span{font-size:clamp(1rem,1.5vw,1.5rem);font-weight:400;vertical-align:super}.metric-label{border-top:1px solid var(--border);color:var(--fg);font-size:clamp(.7rem,.8vw,.85rem);padding-top:.5rem;white-space:nowrap}.text-muted{color:var(--muted)}.text-accent{color:var(--accent)}.text-pure-white{color:var(--pure-white)}.language-switcher{position:relative}.language-switcher-btn{background:0 0;border:1px solid var(--border);color:var(--fg);font-family:var(--font-mono);font-size:.75rem;padding:.5rem 1rem;transition:all .3s var(--ease)}.language-switcher-btn:hover{background:var(--fg);color:var(--bg)}.language-dropdown{background:var(--bg);border:1px solid var(--border);min-width:100%;position:absolute;right:0;top:calc(100% + 4px);z-index:200}.language-option{background:0 0;border:none;border-bottom:1px solid var(--border);color:var(--fg);display:block;font-family:var(--font-mono);font-size:.75rem;padding:.5rem 1rem;text-align:left;transition:all .3s var(--ease);width:100%}.language-option:last-child{border-bottom:none}.language-option:hover{background:var(--fg);color:var(--bg)}}@layer utilities{.start{inset-inline-start:var(--spacing)}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.font-display{font-family:Syne,"Syne Fallback: BlinkMacSystemFont","Syne Fallback: Segoe UI","Syne Fallback: Helvetica Neue","Syne Fallback: Arial","Syne Fallback: Noto Sans",sans-serif}.text-accent{color:var(--accent)}.text-muted{color:var(--muted)}.ease{--tw-ease:cubic-bezier(.19,1,.22,1);transition-timing-function:cubic-bezier(.19,1,.22,1)}}@font-face{font-family:Syne;src:local("Syne SemiBold"),url(../_fonts/SczD_ffHH5Mjnd9klDD0tK26qbnetvX_l5cCZvpz-HM-pU0rqTQO9Mu7_-HjmPkw2PoI-aiI8g3Wp9LWCoM7Rzw.woff2) format(woff2);font-display:swap;unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-weight:600;font-style:normal}@font-face{font-family:"Syne Fallback: BlinkMacSystemFont";src:local("BlinkMacSystemFont");size-adjust:105.4012%;ascent-override:87.7599%;descent-override:26.0908%;line-gap-override:0%}@font-face{font-family:"Syne Fallback: Segoe UI";src:local("Segoe UI");size-adjust:99.0167%;ascent-override:93.4185%;descent-override:27.7731%;line-gap-override:0%}@font-face{font-family:"Syne Fallback: Helvetica Neue";src:local("Helvetica Neue");size-adjust:97.5556%;ascent-override:94.8178%;descent-override:28.1891%;line-gap-override:0%}@font-face{font-family:"Syne Fallback: Arial";src:local("Arial");size-adjust:98.4745%;ascent-override:93.933%;descent-override:27.926%;line-gap-override:0%}@font-face{font-family:"Syne Fallback: Noto Sans";src:local("Noto Sans");size-adjust:92.616%;ascent-override:99.8747%;descent-override:29.6925%;line-gap-override:0%}@font-face{font-family:Syne;src:local("Syne SemiBold"),url(../_fonts/7qy7aunHlpaO6ef3NL_kAMgCMObwTKRvrTuhawi1BSY-jFPLSjtsFyc_rEMJpHpbWgcUm8-ycRUOoZOedVG9IxE.woff2) format(woff2);font-display:swap;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-weight:600;font-style:normal}@font-face{font-family:Syne;src:local("Syne Bold"),url(../_fonts/7qy7aunHlpaO6ef3NL_kAMgCMObwTKRvrTuhawi1BSY-jFPLSjtsFyc_rEMJpHpbWgcUm8-ycRUOoZOedVG9IxE.woff2) format(woff2);font-display:swap;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-weight:700;font-style:normal}@font-face{font-family:Syne;src:local("Syne Bold"),url(../_fonts/DCYoI9BXR4R8zAhLxJjy9m0W8Bhw72Rhnn7-Dg_Y3Sg-_kHN1hLmojwuhnyOAiebeJcr2Do9bB1jyW5ojvWzdLI.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,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-weight:700;font-style:normal}@font-face{font-family:Syne;src:local("Syne ExtraBold"),url(../_fonts/DCYoI9BXR4R8zAhLxJjy9m0W8Bhw72Rhnn7-Dg_Y3Sg-_kHN1hLmojwuhnyOAiebeJcr2Do9bB1jyW5ojvWzdLI.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,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-weight:800;font-style:normal}@font-face{font-family:Space Grotesk;src:local("Space Grotesk Regular"),local("Space Grotesk"),url(../_fonts/HwwgQ0xcb747TjrGNPbpw4MPhVloigKstd_HelZeXpo-BJ4c5Tqyq7k5eL4x_CbxVi7wrtRXKLWPpqnw9vJ_9nY.woff2) format(woff2);font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:normal}@font-face{font-family:"Space Grotesk Fallback: BlinkMacSystemFont";src:local("BlinkMacSystemFont");size-adjust:117.4059%;ascent-override:83.8118%;descent-override:24.871%;line-gap-override:0%}@font-face{font-family:"Space Grotesk Fallback: Helvetica Neue";src:local("Helvetica Neue");size-adjust:108.6667%;ascent-override:90.5521%;descent-override:26.8712%;line-gap-override:0%}@font-face{font-family:Space Grotesk;src:local("Space Grotesk Regular"),local("Space Grotesk"),url(../_fonts/JH-VglQSpGj5wNtl2VbAG337utVVc3Z-jN7YqyfhVJ4-TxNcdYV7HQpCiSm9Pgt39CSt6pv9a0WErDz5f5_sRA4.woff2) format(woff2);font-display:swap;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-weight:400;font-style:normal}@font-face{font-family:Space Grotesk;src:local("Space Grotesk Regular"),local("Space Grotesk"),url(../_fonts/nASo_t82HLcFL0hjY2wGJIeDVSDhmGGSBHuQt1N7u8U-kdshFNu4PTvb1n8YiLDLxfZcX5vdvROSRvgHFcHUmfI.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,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-weight:400;font-style:normal}@font-face{font-family:Space Grotesk;src:local("Space Grotesk Medium"),url(../_fonts/nASo_t82HLcFL0hjY2wGJIeDVSDhmGGSBHuQt1N7u8U-kdshFNu4PTvb1n8YiLDLxfZcX5vdvROSRvgHFcHUmfI.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,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-weight:500;font-style:normal}@font-face{font-family:Syne;src:local("Syne SemiBold"),url(../_fonts/DCYoI9BXR4R8zAhLxJjy9m0W8Bhw72Rhnn7-Dg_Y3Sg-_kHN1hLmojwuhnyOAiebeJcr2Do9bB1jyW5ojvWzdLI.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,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-weight:600;font-style:normal}@font-face{font-family:Syne;src:local("Syne Bold"),url(../_fonts/SczD_ffHH5Mjnd9klDD0tK26qbnetvX_l5cCZvpz-HM-pU0rqTQO9Mu7_-HjmPkw2PoI-aiI8g3Wp9LWCoM7Rzw.woff2) format(woff2);font-display:swap;unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-weight:700;font-style:normal}@font-face{font-family:Syne;src:local("Syne ExtraBold"),url(../_fonts/SczD_ffHH5Mjnd9klDD0tK26qbnetvX_l5cCZvpz-HM-pU0rqTQO9Mu7_-HjmPkw2PoI-aiI8g3Wp9LWCoM7Rzw.woff2) format(woff2);font-display:swap;unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;font-weight:800;font-style:normal}@font-face{font-family:Syne;src:local("Syne ExtraBold"),url(../_fonts/7qy7aunHlpaO6ef3NL_kAMgCMObwTKRvrTuhawi1BSY-jFPLSjtsFyc_rEMJpHpbWgcUm8-ycRUOoZOedVG9IxE.woff2) format(woff2);font-display:swap;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-weight:800;font-style:normal}@font-face{font-family:"Space Grotesk Fallback: Segoe UI";src:local("Segoe UI");size-adjust:110.2943%;ascent-override:89.2159%;descent-override:26.4746%;line-gap-override:0%}@font-face{font-family:"Space Grotesk Fallback: Arial";src:local("Arial");size-adjust:109.6903%;ascent-override:89.7072%;descent-override:26.6204%;line-gap-override:0%}@font-face{font-family:"Space Grotesk Fallback: Noto Sans";src:local("Noto Sans");size-adjust:103.1646%;ascent-override:95.3816%;descent-override:28.3043%;line-gap-override:0%}@font-face{font-family:Space Grotesk;src:local("Space Grotesk Medium"),url(../_fonts/HwwgQ0xcb747TjrGNPbpw4MPhVloigKstd_HelZeXpo-BJ4c5Tqyq7k5eL4x_CbxVi7wrtRXKLWPpqnw9vJ_9nY.woff2) format(woff2);font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-weight:500;font-style:normal}@font-face{font-family:Space Grotesk;src:local("Space Grotesk Medium"),url(../_fonts/JH-VglQSpGj5wNtl2VbAG337utVVc3Z-jN7YqyfhVJ4-TxNcdYV7HQpCiSm9Pgt39CSt6pv9a0WErDz5f5_sRA4.woff2) format(woff2);font-display:swap;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-weight:500;font-style:normal}@font-face{font-family:Space Mono;src:local("Space Mono Regular Italic"),local("Space Mono Italic"),url(../_fonts/Gn7PAMzfhZfuCW92SfSh0MWHHoJZcCfJhtTL4DjGZoQ-yKhCJ7IDXeOLaJdYHNap_kT57xAvLThweZYsMIbfTVg.woff2) format(woff2);font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:italic}@font-face{font-family:"Space Mono Fallback: Courier New";src:local("Courier New");size-adjust:101.9834%;ascent-override:109.8218%;descent-override:35.3979%;line-gap-override:0%}@font-face{font-family:"Space Mono Fallback: Roboto Mono";src:local("Roboto Mono");size-adjust:101.9834%;ascent-override:109.8218%;descent-override:35.3979%;line-gap-override:0%}@font-face{font-family:"Space Mono Fallback: Noto Sans Mono";src:local("Noto Sans Mono");size-adjust:102%;ascent-override:109.8039%;descent-override:35.3922%;line-gap-override:0%}@font-face{font-family:Space Mono;src:local("Space Mono Regular Italic"),local("Space Mono Italic"),url(../_fonts/VhyAbCj-eV-k9WTlNyqH8JRz3f1qnM6kqkj8BgHFBGg-N_9JXiTGaGa60acTl1SiDWENZxSpzGce_B0WlkoBsqE.woff2) format(woff2);font-display:swap;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-weight:400;font-style:italic}@font-face{font-family:Space Mono;src:local("Space Mono Regular Italic"),local("Space Mono Italic"),url(../_fonts/GW02q_JtMM5xcRqsuUZD9xYEpjLzfpP3KaqnEKXszKQ-U0VvY_C0vOuNLTG3QhPlQL_K9aV29e7npXlGZHJcbGc.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,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-weight:400;font-style:italic}@font-face{font-family:Space Mono;src:local("Space Mono Regular"),local("Space Mono"),url(../_fonts/r7HQZ3X1svEOA2jFEwKKESCVPSw85dVccKvwaCpCecw-JMPE4_MP7oPOSDWUvF_jsl7qjihc01pjS7Q6t3xDxHs.woff2) format(woff2);font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;font-weight:400;font-style:normal}@font-face{font-family:Space Mono;src:local("Space Mono Regular"),local("Space Mono"),url(../_fonts/kl2bRDNj_9-qDaq3g77rDU5UUII840esjjzrMXny4aA-86WZCt51_QSXTgNrOd1VrpAsKjfgJgW8Zi-2j43nWN8.woff2) format(woff2);font-display:swap;unicode-range:U+0000-00FF,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-weight:400;font-style:normal}@font-face{font-family:Space Mono;src:local("Space Mono Regular"),local("Space Mono"),url(../_fonts/YVYdqnMNuJ2OZ1M8tAHaeCoOPCFdMFPp-3VXPNl-XN4-jmy4ixVzWNRngG_Fx3z1no90Y4rqXGSJ05sORJJymw8.woff2) format(woff2);font-display:swap;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-weight:400;font-style:normal}:root{--bg-rgb:9,9,9;--bg:#090909;--fg:#f4f4f4;--muted:#6b6b6b;--border:#222;--accent:#ff3b00;--pure-white:#fff;--pure-black:#000;--font-body:"Space Grotesk", "Space Grotesk Fallback: BlinkMacSystemFont", "Space Grotesk Fallback: Segoe UI", "Space Grotesk Fallback: Helvetica Neue", "Space Grotesk Fallback: Arial", "Space Grotesk Fallback: Noto Sans",sans-serif;--font-display:"Syne", "Syne Fallback: BlinkMacSystemFont", "Syne Fallback: Segoe UI", "Syne Fallback: Helvetica Neue", "Syne Fallback: Arial", "Syne Fallback: Noto Sans",sans-serif;--font-mono:"Space Mono", "Space Mono Fallback: Courier New", "Space Mono Fallback: Roboto Mono", "Space Mono Fallback: Noto Sans Mono",monospace;--ease:cubic-bezier(.19,1,.22,1)}[data-theme=light]{--bg-rgb:244,244,244;--bg:#f4f4f4;--fg:#090909;--muted:#888;--border:#ccc;--accent:#ff3b00;--pure-white:#000;--pure-black:#fff}@keyframes staggerUp{to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{to{opacity:1}}@keyframes scroll-anim{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@media(max-width:1024px){.hero{height:auto;overflow-x:hidden;padding-bottom:5rem;padding-top:10rem}.hero-grid{gap:4rem;grid-template-columns:1fr}.hero-photo-container{height:auto;justify-content:center;margin:0 auto;width:calc(100% - 20px)}.hero-photo-container:before{left:15px;top:15px}.hero-photo{height:auto;max-width:380px;width:100%}.hero-headline{font-size:clamp(1.8rem,8.5vw,3rem);line-height:1.1}.hero-headline span{margin-left:0!important}.hero-desc-box{border-left:none;border-top:none;margin-top:1.5rem;padding-left:0;padding-top:0}.hero-desc-box p{font-size:1rem;line-height:1.4}.about-grid,.projects-grid{grid-template-columns:1fr}.project-card{margin-top:2rem!important}.skills-container{grid-template-columns:repeat(2,1fr)}.timeline{margin-left:0;padding-left:6vw}.timeline-year{display:block;margin-bottom:.5rem;position:static;text-align:left}.contact-content{gap:4rem;grid-template-columns:1fr}.scroll-down{display:none}}@media(max-width:768px){.nav-links{display:none}.hamburger{display:block;pointer-events:auto}.hero-headline{font-size:12vw}.hero-desc-box p{font-size:1rem}.about-text{font-size:6vw}.about-sub{font-size:.9rem}.skill-box{padding:2rem 1rem}.footer{flex-direction:column;gap:2rem;text-align:center}.cursor-circle,.cursor-dot{display:none}*,body{cursor:auto!important}.metrics{flex-direction:column;gap:2rem}.hero-label{font-size:.75rem}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
