@import url("https://fonts.googleapis.com/css2?family=DotGothic16&display=swap");@import url("https://fonts.googleapis.com/css2?family=VT323:wght@400&display=swap");*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
/*
! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}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{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:VT323,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-8{bottom:2rem}.right-8{right:2rem}.z-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-8{margin-left:2rem}.mr-2{margin-right:.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-4{width:1rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.flex-1{flex:1 1 0%}.flex-grow{flex-grow:1}.animate-blink{animation:blink 1s infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.resize{resize:both}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l-2{border-left-width:2px}.border-t{border-top-width:1px}.border-matrix-gray{--tw-border-opacity:1;border-color:rgb(51 51 51/var(--tw-border-opacity,1))}.bg-matrix-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.pb-2{padding-bottom:.5rem}.pl-4{padding-left:1rem}.pt-2{padding-top:.5rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-center{text-align:center}.font-dot-matrix{font-family:DotGothic16,VT323,monospace}.font-mono{font-family:VT323,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-6xl{font-size:3.75rem;line-height:1}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-matrix-gray{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity,1))}.text-matrix-light{--tw-text-opacity:1;color:rgb(119 119 119/var(--tw-text-opacity,1))}.text-matrix-white{--tw-text-opacity:1;color:rgb(245 245 245/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.opacity-10{opacity:.1}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:#000;color:#f5f5f5;font-family:DotGothic16,VT323,monospace;overflow-x:hidden}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#000}::-webkit-scrollbar-thumb{background:#333;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#777}.dot-matrix-text{font-family:DotGothic16,VT323,monospace;text-shadow:0 0 5px hsla(0,0%,96%,.5),0 0 10px hsla(0,0%,96%,.3),0 0 15px hsla(0,0%,96%,.2);animation:text-flicker 3s linear infinite}@keyframes text-flicker{0%,19.999%,22%,62.999%,64%,64.999%,70%,to{text-shadow:0 0 5px hsla(0,0%,96%,.5),0 0 10px hsla(0,0%,96%,.3),0 0 15px hsla(0,0%,96%,.2)}20%,21.999%,63%,63.999%,65%,69.999%{text-shadow:none}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes flicker{0%,19.999%,22%,62.999%,64%,64.999%,70%,to{opacity:.99}20%,21.999%,63%,63.999%,65%,69.999%{opacity:.4}}@keyframes dot-glow{0%{box-shadow:0 0 5px hsla(0,0%,96%,.5)}to{box-shadow:0 0 20px hsla(0,0%,96%,.8)}}.dot-grid{background-image:radial-gradient(circle,#333 1px,transparent 0);background-size:20px 20px}.terminal-cursor:after{content:"_";animation:blink 1s infinite}.dot-button{border:2px solid #f5f5f5;background:transparent;color:#f5f5f5;padding:12px 24px;font-family:DotGothic16,monospace;font-size:14px;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.dot-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,hsla(0,0%,96%,.1),transparent);transition:left .5s ease}.dot-button:hover:before{left:100%}.dot-button:hover{box-shadow:0 0 20px hsla(0,0%,96%,.3);transform:scale(1.05)}.project-card{border:1px solid #333;background:rgba(51,51,51,.1);transition:all .3s ease;position:relative;overflow:hidden}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at var(--mouse-x,50%) var(--mouse-y,50%),hsla(0,0%,96%,.1) 0,transparent 50%);opacity:0;transition:opacity .3s ease;pointer-events:none}.project-card:hover:before{opacity:1}.project-card:hover{border-color:#777;box-shadow:0 8px 25px hsla(0,0%,96%,.15)}.skill-icon{min-height:80px;border:2px solid #333;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:24px;transition:all .3s ease;position:relative;padding:8px}.skill-icon:hover{border-color:#f5f5f5;box-shadow:0 0 20px hsla(0,0%,96%,.3);animation:dot-glow 1s ease-in-out infinite alternate}.timeline-node{width:20px;height:20px;border:2px solid #f5f5f5;background:#000;border-radius:50%;position:relative;animation:dot-glow 2s ease-in-out infinite alternate}.timeline-line{width:2px;background:#333;position:absolute;left:50%;transform:translateX(-50%)}.social-icon{width:50px;height:50px;border:2px solid #333;display:flex;align-items:center;justify-content:center;transition:all .3s ease;position:relative;overflow:hidden}.social-icon:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:radial-gradient(circle,hsla(0,0%,96%,.2) 0,transparent 70%);transition:all .3s ease;transform:translate(-50%,-50%)}.social-icon:hover:before{width:100px;height:100px}.social-icon:hover{border-color:#f5f5f5;transform:scale(1.1)}.glitch{position:relative;animation:glitch-skew 1s linear infinite alternate-reverse}.glitch:after,.glitch:before{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%}.glitch:before{animation:glitch-anim-1 .5s linear infinite alternate-reverse;color:red;z-index:-1}.glitch:after{animation:glitch-anim-2 1s linear infinite alternate-reverse;color:#0f0;z-index:-2}@keyframes glitch-anim-1{0%{clip:rect(42px,9999px,44px,0);transform:skew(.85deg)}5%{clip:rect(12px,9999px,59px,0);transform:skew(.4deg)}10%{clip:rect(48px,9999px,29px,0);transform:skew(.1deg)}15%{clip:rect(42px,9999px,73px,0);transform:skew(.7deg)}20%{clip:rect(63px,9999px,27px,0);transform:skew(.4deg)}25%{clip:rect(34px,9999px,55px,0);transform:skew(.2deg)}30%{clip:rect(86px,9999px,73px,0);transform:skew(.8deg)}35%{clip:rect(20px,9999px,20px,0);transform:skew(.1deg)}40%{clip:rect(26px,9999px,60px,0);transform:skew(.6deg)}45%{clip:rect(25px,9999px,66px,0);transform:skew(.1deg)}50%{clip:rect(57px,9999px,98px,0);transform:skew(.5deg)}55%{clip:rect(5px,9999px,46px,0);transform:skew(.2deg)}60%{clip:rect(82px,9999px,31px,0);transform:skew(.6deg)}65%{clip:rect(54px,9999px,27px,0);transform:skew(.1deg)}70%{clip:rect(28px,9999px,99px,0);transform:skew(.6deg)}75%{clip:rect(45px,9999px,69px,0);transform:skew(.6deg)}80%{clip:rect(23px,9999px,85px,0);transform:skew(.3deg)}85%{clip:rect(54px,9999px,84px,0);transform:skew(.5deg)}90%{clip:rect(45px,9999px,47px,0);transform:skew(.3deg)}95%{clip:rect(37px,9999px,20px,0);transform:skew(.4deg)}to{clip:rect(4px,9999px,91px,0);transform:skew(.2deg)}}@keyframes glitch-anim-2{0%{clip:rect(65px,9999px,100px,0);transform:skew(.2deg)}5%{clip:rect(52px,9999px,74px,0);transform:skew(.7deg)}10%{clip:rect(79px,9999px,85px,0);transform:skew(.5deg)}15%{clip:rect(75px,9999px,5px,0);transform:skew(.3deg)}20%{clip:rect(67px,9999px,61px,0);transform:skew(.5deg)}25%{clip:rect(14px,9999px,79px,0);transform:skew(.1deg)}30%{clip:rect(1px,9999px,66px,0);transform:skew(.3deg)}35%{clip:rect(86px,9999px,30px,0);transform:skew(.2deg)}40%{clip:rect(23px,9999px,98px,0);transform:skew(.8deg)}45%{clip:rect(85px,9999px,72px,0);transform:skew(.2deg)}50%{clip:rect(39px,9999px,49px,0);transform:skew(.6deg)}55%{clip:rect(54px,9999px,81px,0);transform:skew(.2deg)}60%{clip:rect(40px,9999px,56px,0);transform:skew(.6deg)}65%{clip:rect(67px,9999px,81px,0);transform:skew(.1deg)}70%{clip:rect(82px,9999px,97px,0);transform:skew(.9deg)}75%{clip:rect(49px,9999px,89px,0);transform:skew(.4deg)}80%{clip:rect(29px,9999px,52px,0);transform:skew(.4deg)}85%{clip:rect(36px,9999px,2px,0);transform:skew(.1deg)}90%{clip:rect(75px,9999px,46px,0);transform:skew(.7deg)}95%{clip:rect(79px,9999px,23px,0);transform:skew(.3deg)}to{clip:rect(21px,9999px,84px,0);transform:skew(.3deg)}}@keyframes glitch-skew{0%{transform:skew(0deg)}10%{transform:skew(1deg)}20%{transform:skew(0deg)}30%{transform:skew(1deg)}40%{transform:skew(0deg)}50%{transform:skew(-1deg)}60%{transform:skew(0deg)}70%{transform:skew(-1deg)}80%{transform:skew(0deg)}90%{transform:skew(1deg)}to{transform:skew(0deg)}}.section-bg{position:relative;overflow:hidden}.section-bg:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent 98%,hsla(0,0%,96%,.03)),linear-gradient(0deg,transparent 98%,hsla(0,0%,96%,.03));background-size:50px 50px;pointer-events:none;animation:grid-move 20s linear infinite}@keyframes grid-move{0%{transform:translate(0)}to{transform:translate(50px,50px)}}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-matrix-white:hover{--tw-border-opacity:1;border-color:rgb(245 245 245/var(--tw-border-opacity,1))}.hover\:bg-matrix-gray:hover{--tw-bg-opacity:1;background-color:rgb(51 51 51/var(--tw-bg-opacity,1))}.hover\:bg-opacity-10:hover{--tw-bg-opacity:0.1}.hover\:text-matrix-white:hover{--tw-text-opacity:1;color:rgb(245 245 245/var(--tw-text-opacity,1))}.focus\:border-matrix-white:focus{--tw-border-opacity:1;border-color:rgb(245 245 245/var(--tw-border-opacity,1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}@keyframes pulse{50%{opacity:.5}}.group:hover .group-hover\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.group:hover .group-hover\:text-matrix-light{--tw-text-opacity:1;color:rgb(119 119 119/var(--tw-text-opacity,1))}.group:hover .group-hover\:text-matrix-white{--tw-text-opacity:1;color:rgb(245 245 245/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:inline{display:inline}.sm\:flex-row{flex-direction:row}}@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-8xl{font-size:6rem;line-height:1}}@media (min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}