/*
! tailwindcss v3.2.4 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}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,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal}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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-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}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]{display:none}*,: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-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: }::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-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: }.relative{position:relative}.z-10{z-index:10}.mx-auto{margin-left:auto;margin-right:auto}.mt-10{margin-top:2.5rem}.mb-3{margin-bottom:.75rem}.mb-16{margin-bottom:4rem}.mt-12{margin-top:3rem}.mt-8{margin-top:2rem}.mb-8{margin-bottom:2rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mr-1\.5{margin-right:.375rem}.mr-1{margin-right:.25rem}.mb-4{margin-bottom:1rem}.mr-6{margin-right:1.5rem}.mr-3{margin-right:.75rem}.mb-0{margin-bottom:0}.mt-4{margin-top:1rem}.-ml-4{margin-left:-1rem}.-mt-1{margin-top:-.25rem}.mr-2{margin-right:.5rem}.mb-5{margin-bottom:1.25rem}.mt-6{margin-top:1.5rem}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.h-0\.5{height:.125rem}.h-0{height:0}.h-8{height:2rem}.min-h-screen{min-height:100vh}.w-full{width:100%}.w-fit{width:-moz-fit-content;width:fit-content}.w-8{width:2rem}.max-w-5xl{max-width:64rem}.max-w-2xl{max-width:42rem}.max-w-full{max-width:100%}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-6{gap:1.5rem}.gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.gap-y-5{row-gap:1.25rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.whitespace-pre-wrap{white-space:pre-wrap}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-white\/10{border-color:hsla(0,0%,100%,.1)}.border-black\/20{border-color:rgba(0,0,0,.2)}.bg-white\/5{background-color:hsla(0,0%,100%,.05)}.bg-\[\#dc2638\]{--tw-bg-opacity:1;background-color:rgb(220 38 56/var(--tw-bg-opacity))}.bg-white\/10{background-color:hsla(0,0%,100%,.1)}.p-6{padding:1.5rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-16{padding-bottom:4rem}.pt-10{padding-top:2.5rem}.pl-4{padding-left:1rem}.pt-4{padding-top:1rem}.pb-6{padding-bottom:1.5rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-xs{font-size:.75rem;line-height:1rem}.text-\[11px\]{font-size:11px}.text-lg{font-size:1.125rem}.text-lg,.text-xl{line-height:1.75rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-light{font-weight:300}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.leading-\[1\.12\]{line-height:1.12}.leading-relaxed{line-height:1.625}.tracking-\[0\.25em\]{letter-spacing:.25em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-widest{letter-spacing:.1em}.tracking-\[0\.35em\]{letter-spacing:.35em}.tracking-\[0\.3em\]{letter-spacing:.3em}.tracking-\[0\.18em\]{letter-spacing:.18em}.text-slate-50{--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity))}.text-slate-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity))}.text-\[\#22272A\]{--tw-text-opacity:1;color:rgb(34 39 42/var(--tw-text-opacity))}.text-\[\#dc2638\]{--tw-text-opacity:1;color:rgb(220 38 56/var(--tw-text-opacity))}.text-\[\#6b7280\]{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity))}.text-emerald-400\/70{color:rgba(52,211,153,.7)}.text-slate-300\/75{color:rgba(203,213,225,.75)}.text-slate-400\/80{color:rgba(148,163,184,.8)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-80{opacity:.8}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-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}.duration-300{transition-duration:.3s}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}@font-face{font-family:SFMono;src:url(/_next/static/media/SFMonoRegular.a087f4ec.woff);font-weight:400;font-style:monospace}@font-face{font-family:SFMono;src:url(/_next/static/media/SFMonoBold.a5017eb4.woff);font-weight:700;font-style:monospace}@font-face{font-family:SFMono;src:url(/_next/static/media/SFMonoLight.e6d23b82.woff);font-weight:light;font-style:monospace}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}.home-shell,body,html{font-family:Montserrat,sans-serif}.home-shell{min-height:100vh;color:#e6edf3;background-color:#0b0f14;line-height:1.6;--grid-size:130px}.home-shell,.home-shell>*{position:relative}.home-section{animation:home-fade-up .7s ease forwards;opacity:0;transform:translateY(10px)}.home-section.delay-1{animation-delay:.08s}.home-section.delay-2{animation-delay:.16s}.home-section.delay-3{animation-delay:.24s}.hero{position:relative;padding:5rem 0 3.5rem;overflow:hidden;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);--grid-highlight-x:0px;--grid-highlight-y:0px;--grid-highlight-opacity:0}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(90deg,#263244 1px,transparent 0),linear-gradient(180deg,#263244 1px,transparent 0);background-size:var(--grid-size) var(--grid-size);opacity:.34;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000 0,#000 60%,transparent);mask-image:linear-gradient(180deg,#000 0,#000 60%,transparent);z-index:1}.hero-grid-highlight{position:absolute;width:var(--grid-size);height:var(--grid-size);transform:translate(var(--grid-highlight-x),var(--grid-highlight-y));background:rgba(148,163,184,.08);border:1px solid rgba(148,163,184,.2);opacity:var(--grid-highlight-opacity);transition:opacity .15s ease;box-shadow:0 0 20px rgba(56,189,248,.08)}.hero:after{content:"";position:absolute;inset:18% 12% 20% 12%;background:radial-gradient(40% 50% at 55% 35%,rgba(255,112,83,.18),rgba(255,112,83,0)),radial-gradient(30% 40% at 45% 55%,rgba(90,196,255,.16),rgba(90,196,255,0)),radial-gradient(45% 60% at 70% 65%,rgba(255,92,162,.12),rgba(255,92,162,0));filter:blur(26px);opacity:.65;pointer-events:none;z-index:0}.hero-inner{max-width:720px;margin:0 auto;padding:0 1.5rem;position:relative;z-index:3}.hero-title{margin-bottom:1.25rem;font-size:clamp(2.5rem,6vw,3.75rem);font-weight:500;letter-spacing:-.015em;line-height:1.02;color:#f1f5f9}.hero-text p{margin-bottom:.9rem;font-size:1rem;line-height:1.7;color:#c9d4e3}.hero-runners{position:absolute;inset:0;left:50%;width:100vw;height:100%;transform:translateX(-50%);pointer-events:none;z-index:2}.hero-runner{position:absolute;opacity:.75;animation-timing-function:linear;animation-iteration-count:infinite}.hero-runner--h{height:1px;width:240px;background:linear-gradient(90deg,rgba(239,68,68,0),rgba(239,68,68,.6),rgba(34,197,94,.4));animation-name:hero-runner-h}.hero-runner--a{top:calc(var(--grid-size) * 1);left:-35vw;animation-duration:8.5s}.hero-runner--b{top:calc(var(--grid-size) * 2);left:-45vw;animation-duration:9.2s;animation-delay:1.4s}.hero-runner--c{top:calc(var(--grid-size) * 3);left:-40vw;animation-duration:10.2s;animation-delay:2.8s}.hero-runner--v{width:1px;height:220px;background:linear-gradient(180deg,rgba(239,68,68,0),rgba(239,68,68,.55),rgba(34,197,94,.35));animation-name:hero-runner-v}.hero-runner--d{left:calc(var(--grid-size) * 2);top:-40%;animation-duration:7.5s}.hero-runner--e{left:calc(var(--grid-size) * 5);top:-50%;animation-duration:8.8s;animation-delay:1.8s}.tech-logos{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}.tech-logos__marquee{display:none;overflow:hidden}.tech-logos__track{display:flex;align-items:center;gap:3rem;width:-moz-max-content;width:max-content;animation:tech-marquee 18s linear infinite}.tech-logos__item{display:inline-flex;flex-direction:column;align-items:center;gap:.5rem;min-width:6.5rem}.tech-logos__item span{font-size:.625rem}.portfolio-card{--card-radius:12px;position:relative;transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transform-style:preserve-3d;transition:transform .2s ease,box-shadow .2s ease}.portfolio-card__content{transform:translateZ(24px);backface-visibility:hidden;transform-style:preserve-3d;will-change:transform}.portfolio-card__runner{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .2s ease}.portfolio-card__runner .runner{fill:none;stroke-linecap:round;stroke-width:1;stroke-dasharray:24 76;animation:runner-dash 9s linear infinite}.portfolio-card:hover{box-shadow:0 18px 50px rgba(6,12,20,.45)}.portfolio-card:hover .portfolio-card__runner{opacity:.75}.portfolio-timeline{--timeline-offset:3rem;--timeline-line-left:1.25rem;--timeline-padding:3rem;position:relative;display:flex;flex-direction:column;gap:2rem;padding-left:var(--timeline-padding)}.portfolio-timeline:before{content:"";position:absolute;left:var(--timeline-line-left);top:.5rem;bottom:.5rem;width:1px;background:linear-gradient(180deg,rgba(148,163,184,0),rgba(148,163,184,.35),rgba(148,163,184,.2),rgba(148,163,184,0))}.portfolio-timeline__item{position:relative}.portfolio-timeline__marker{position:absolute;left:calc(-1 * var(--timeline-padding) + var(--timeline-line-left) - .3rem + .5px);top:1.4rem;width:.6rem;height:.6rem;border-radius:999px;border:1px solid rgba(148,163,184,.35);background:#0b0f14;box-shadow:0 0 0 6px rgba(148,163,184,.06);transition:box-shadow .25s ease,border-color .25s ease,background-color .25s ease}.portfolio-timeline__card{margin-left:0}.portfolio-timeline__item--offset .portfolio-timeline__card{margin-left:var(--timeline-offset);width:calc(100% - var(--timeline-offset))}.portfolio-timeline__item:hover .portfolio-timeline__marker{border-color:rgba(56,189,248,.6);background-color:rgba(56,189,248,.2);box-shadow:0 0 0 6px rgba(56,189,248,.12),0 0 18px rgba(56,189,248,.2)}@media (max-width:900px){.portfolio-timeline{--timeline-padding:2.25rem;--timeline-line-left:1rem;gap:1.5rem}.portfolio-timeline__item--offset .portfolio-timeline__card{margin-left:0;width:auto}}.home-richtext p{margin-bottom:.75rem;color:#c9d4e3}.home-richtext h2{margin-bottom:.25rem;font-family:Montserrat,sans-serif;font-weight:500;font-size:1.25rem;line-height:1.65rem;color:#e6edf3}.font-mono{font-family:SFMono,monospace}@keyframes home-fade-up{to{opacity:1;transform:translateY(0)}}@keyframes hero-runner-h{to{transform:translateX(160vw)}}@keyframes hero-runner-v{to{transform:translateY(160vh)}}@keyframes tech-marquee{to{transform:translateX(-50%)}}@keyframes runner-dash{to{stroke-dashoffset:-100}}@media (prefers-reduced-motion:reduce){.home-section{animation:none;opacity:1;transform:none}.portfolio-card,.portfolio-card__runner .runner{animation:none;transition:none}.hero-runner,.tech-logos__track{animation:none}}@media (max-width:900px){.tech-logos__grid{display:none}.tech-logos__marquee{display:block}}.link-decorated{position:relative;white-space:nowrap}.link-decorated:after{content:" ";height:.0625rem;width:0;position:absolute;bottom:-.125rem;right:0;background:#dc2638;transition:.6s cubic-bezier(.19,1,.22,1)}.link-decorated:hover:after{width:100%;right:unset;left:0}.linear-grid{background-image:linear-gradient(90deg,#262626 1px,transparent 0),linear-gradient(180deg,#262626 1px,transparent 0);background-size:120px 120px}.hover\:border-white\/20:hover{border-color:hsla(0,0%,100%,.2)}.hover\:bg-white\/10:hover{background-color:hsla(0,0%,100%,.1)}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.hover\:text-\[\#dc2638\]:hover{--tw-text-opacity:1;color:rgb(220 38 56/var(--tw-text-opacity))}.hover\:text-black:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-cyan-400\/40:focus-visible{--tw-ring-color:rgba(34,211,238,.4)}.group:hover .group-hover\:-translate-x-1{--tw-translate-x:-0.25rem}.group:hover .group-hover\:-translate-x-1,.group:hover .group-hover\:translate-x-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))}.group:hover .group-hover\:translate-x-1{--tw-translate-x:0.25rem}.dark .dark\:text-slate-50{--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity))}.dark .dark\:text-\[\#b4b8c0\]{--tw-text-opacity:1;color:rgb(180 184 192/var(--tw-text-opacity))}@media (min-width:768px){.md\:block{display:block}.md\:hidden{display:none}.md\:text-left{text-align:left}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}}@media (min-width:1024px){.lg\:w-1\/3{width:33.333333%}}