body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.vertical-timeline *{box-sizing:border-box}.vertical-timeline{width:95%;max-width:1170px;margin:0 auto;position:relative;padding:2em 0}.vertical-timeline:after{content:"";display:table;clear:both}.vertical-timeline:before{content:"";position:absolute;top:0;left:18px;height:100%;width:4px;background:var(--line-color)}.vertical-timeline.vertical-timeline--one-column-right:before{right:18px;left:unset}@media only screen and (min-width:1170px){.vertical-timeline.vertical-timeline--two-columns{width:90%}.vertical-timeline.vertical-timeline--two-columns:before{left:50%;margin-left:-2px}}.vertical-timeline-element{position:relative;margin:2em 0}.vertical-timeline-element>div{min-height:1px}.vertical-timeline-element:after{content:"";display:table;clear:both}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}@media only screen and (min-width:1170px){.vertical-timeline-element{margin:4em 0}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}}.vertical-timeline-element-icon{position:absolute;top:0;left:0;width:40px;height:40px;border-radius:50%;box-shadow:0 0 0 4px #fff,inset 0 2px #00000014,0 3px 0 4px #0000000d}.vertical-timeline--one-column-right .vertical-timeline-element-icon{right:0;left:unset}.vertical-timeline-element-icon svg{display:block;width:24px;height:24px;position:relative;left:50%;top:50%;margin-left:-12px;margin-top:-12px}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-icon{width:60px;height:60px;left:50%;margin-left:-30px}}.vertical-timeline-element-icon{-webkit-transform:translateZ(0);-webkit-backface-visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.bounce-in{visibility:visible;-webkit-animation:cd-bounce-1 .6s;-moz-animation:cd-bounce-1 .6s;animation:cd-bounce-1 .6s}@-webkit-keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2)}to{-webkit-transform:scale(1)}}@-moz-keyframes cd-bounce-1{0%{opacity:0;-moz-transform:scale(.5)}60%{opacity:1;-moz-transform:scale(1.2)}to{-moz-transform:scale(1)}}@keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);-o-transform:scale(.5);transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}to{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}}.vertical-timeline-element-content{position:relative;margin-left:60px;background:#fff;border-radius:.25em;padding:1em;box-shadow:0 3px #ddd}.vertical-timeline--one-column-right .vertical-timeline-element-content{margin-right:60px;margin-left:unset}.vertical-timeline-element--no-children .vertical-timeline-element-content{background:0 0;box-shadow:none}.vertical-timeline-element-content:after{content:"";display:table;clear:both}.vertical-timeline-element-content h2{color:#303e49}.vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline-element-content p{font-size:13px;font-size:.8125rem;font-weight:500}.vertical-timeline-element-content .vertical-timeline-element-date{display:inline-block}.vertical-timeline-element-content p{margin:1em 0 0;line-height:1.6}.vertical-timeline-element-title,.vertical-timeline-element-subtitle{margin:0}.vertical-timeline-element-content .vertical-timeline-element-date{float:left;padding:.8em 0;opacity:.7}.vertical-timeline-element-content-arrow{content:"";position:absolute;top:16px;right:100%;height:0;width:0;border:7px solid transparent;border-right:7px solid #fff}.vertical-timeline--one-column-right .vertical-timeline-element-content-arrow{content:"";position:absolute;top:16px;right:unset;left:100%;height:0;width:0;border:7px solid transparent;border-left:7px solid #fff}.vertical-timeline--one-column-right .vertical-timeline-element-content:before{left:100%;border-left:7px solid #fff;border-right:unset}.vertical-timeline-element--no-children .vertical-timeline-element-content:before{display:none}.vertical-timeline-element--no-children .vertical-timeline-element-content-arrow{display:none}@media only screen and (min-width:768px){.vertical-timeline-element-content h2{font-size:20px;font-size:1.25rem}.vertical-timeline-element-content p{font-size:16px;font-size:1rem}.vertical-timeline-element-content .vertical-timeline-element-date{font-size:14px;font-size:.875rem}}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-content{margin-left:0;padding:1.5em;width:44%}.vertical-timeline--two-columns .vertical-timeline-element-content-arrow{top:24px;left:100%;transform:rotate(180deg)}.vertical-timeline--two-columns .vertical-timeline-element-content .vertical-timeline-element-date{position:absolute;width:100%;left:124%;top:6px;font-size:16px;font-size:1rem}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content{float:right}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{top:24px;left:auto;right:100%;transform:rotate(0)}.vertical-timeline--one-column-right .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--one-column-right .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{top:24px;left:100%;right:auto;transform:rotate(0)}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content .vertical-timeline-element-date{left:auto;right:124%;text-align:right}}.vertical-timeline--animate .vertical-timeline-element-content.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{visibility:visible;-webkit-animation:cd-bounce-2 .6s;-moz-animation:cd-bounce-2 .6s;animation:cd-bounce-2 .6s}@media only screen and (min-width:1170px){.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content.bounce-in,.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;-moz-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@media only screen and (max-width:1169px){.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{visibility:visible;-webkit-animation:cd-bounce-2-inverse .6s;-moz-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@-webkit-keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px)}to{-webkit-transform:translateX(0)}}@-moz-keyframes cd-bounce-2{0%{opacity:0;-moz-transform:translateX(-100px)}60%{opacity:1;-moz-transform:translateX(20px)}to{-moz-transform:translateX(0)}}@keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px);-moz-transform:translateX(-100px);-ms-transform:translateX(-100px);-o-transform:translateX(-100px);transform:translate(-100px)}60%{opacity:1;-webkit-transform:translateX(20px);-moz-transform:translateX(20px);-ms-transform:translateX(20px);-o-transform:translateX(20px);transform:translate(20px)}to{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translate(0)}}@-webkit-keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px)}to{-webkit-transform:translateX(0)}}@-moz-keyframes cd-bounce-2-inverse{0%{opacity:0;-moz-transform:translateX(100px)}60%{opacity:1;-moz-transform:translateX(-20px)}to{-moz-transform:translateX(0)}}@keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px);-moz-transform:translateX(100px);-ms-transform:translateX(100px);-o-transform:translateX(100px);transform:translate(100px)}60%{opacity:1;-webkit-transform:translateX(-20px);-moz-transform:translateX(-20px);-ms-transform:translateX(-20px);-o-transform:translateX(-20px);transform:translate(-20px)}to{-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translate(0)}}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}html,body{overflow-x:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#0a0a1a;color:#f1f5f9;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.App{width:100%;height:100%;display:flex;flex-flow:column nowrap;position:relative;color:#f1f5f9}a{text-decoration:none;color:#60a5fa;transition:color .15s ease}a:hover{color:#a78bfa}.deadLink{text-decoration:line-through;color:#64748b}.comp-wrapper{width:100%;height:auto}.comp-wrapper h2{width:fit-content;text-align:center;font-size:2.25rem;font-weight:700;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;letter-spacing:-.02em;margin:0 auto 2rem;position:relative}.comp-wrapper h2:after{content:"";display:block;width:100%;height:3px;background:linear-gradient(135deg,#3b82f6,#7c3aed);margin:.75rem auto 0;border-radius:2px}.skip-to-content{position:absolute;top:-100%;left:50%;transform:translate(-50%);background:#3b82f6;color:#fff;padding:.75rem 1.5rem;z-index:9999999;border-radius:0 0 6px 6px;font-weight:600;transition:top .2s}.skip-to-content:focus{top:0}:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.linkedinLogo{width:1.5rem;height:1.5rem;opacity:.7;transition:opacity .15s ease,transform .15s ease;filter:brightness(0) invert(1)}.linkedinWrapper{width:2.5rem;height:2.5rem;display:flex;justify-content:center;align-items:center;border-radius:6px;transition:background-color .15s ease}.linkedinWrapper:hover{background-color:#ffffff14}.linkedinWrapper:hover .linkedinLogo{opacity:1;transform:translateY(-1px)}.emailWrapper{display:flex;align-items:center;justify-content:center}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#0a0a1a}::-webkit-scrollbar-thumb{background:#374151;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#64748b}#landing{position:relative;text-align:center;height:100vh;width:100%;background:radial-gradient(ellipse at 50% 0%,rgba(96,165,250,.08) 0%,transparent 60%),#0a0a1a;min-height:37.5rem;display:flex;flex-flow:column nowrap;align-items:center;justify-content:center;overflow:hidden}#landing:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 80%,rgba(167,139,250,.06) 0%,transparent 40%),radial-gradient(circle at 80% 20%,rgba(96,165,250,.06) 0%,transparent 40%);pointer-events:none}#landing h1{font-size:4.5rem;font-weight:800;letter-spacing:-.03em;margin:0 0 .5rem;background:linear-gradient(135deg,#f1f5f9,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative;z-index:1}#landing h2{font-size:1.5rem;font-weight:400;color:#94a3b8;margin:0 0 .5rem;letter-spacing:0;position:relative;z-index:1}#landing h2:after{display:none}.heroSubtitle{font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.95rem;color:#60a5fa;letter-spacing:.05em;margin-top:.75rem;position:relative;z-index:1;opacity:.9}.landingBarMobile{position:absolute;top:1rem;right:1rem;display:none;flex-flow:row wrap;align-items:center;justify-content:flex-end;z-index:10}.landingEmail{padding:.375rem .8125rem .625rem}.scrollIndicator{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:.4;animation:bounce 2s ease-in-out infinite;z-index:1}.scrollArrow{width:1.5rem;height:1.5rem;border:none;border-right:2px solid #94a3b8;border-bottom:2px solid #94a3b8;transform:rotate(45deg);background:none;padding:0;cursor:pointer}@keyframes bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(8px)}}@media screen and (max-width:1026px){.landingBarMobile{display:flex}}@media screen and (max-width:450px){#landing h1{font-size:3rem}#landing h2{font-size:1.25rem}.heroSubtitle{font-size:.8rem;padding:0 1rem}}.navMobileContainer{width:auto;height:auto;display:none;flex-flow:column nowrap;position:fixed;top:0;left:0;justify-content:flex-start;align-items:flex-start;z-index:9999;transition:left .4s ease-in-out}.navMobileContainer.menuOpen{width:9.375rem;background:#161618eb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:0 0 6px}.bar1,.bar2,.bar3{width:2rem;height:3px;background-color:#94a3b8;margin:4px 0;transition:.4s;border-radius:2px}.change .bar1{transform:rotate(-45deg) translate(-7px,5px)}.change .bar2{opacity:0}.change .bar3{transform:rotate(45deg) translate(-7px,-5px)}.container{display:inline-block;cursor:pointer;padding:.75rem;background:none;border:none;color:inherit}.menuMobile{width:100%;height:auto;padding-bottom:.75rem;transition:opacity .3s ease-in-out}.menuMobile.hidden{display:none}.menuItem{font-size:1.1rem;font-weight:500;line-height:2.75rem;margin:0;padding-left:1rem;color:#94a3b8;transition:color .15s ease}.menuItem:hover{color:#f1f5f9}.navMobileLinksContainer{list-style-type:none;display:flex;flex-flow:column nowrap;align-items:flex-start;justify-content:flex-start}.navMobileLinksContainer a{width:100%;height:auto;text-align:left;margin:none}.navMobileLinksContainer a:hover{background-color:#ffffff0d}@media screen and (max-width:1026px){.navMobileContainer{display:flex}}#desktopNavbar{display:flex;position:fixed;top:0;left:0;z-index:999999;transition:top .4s ease-in-out;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.06)}.landingBar{display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-end;padding-right:1.5rem;background-color:transparent}.gradient{width:8rem;height:100%;background:linear-gradient(to right,#0a0a1a00,#0a0a1af2)}.navDesktopContainer{position:relative;width:100vw;display:flex;justify-content:flex-start;flex-flow:row nowrap;background-color:#0a0a1ad9}.navDesktopContainer a:first-of-type{margin:0 0 0 1.5rem}.navDesktopContainer a:last-of-type{margin-right:auto}.desktop{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;padding:0 1.25rem;color:#94a3b8;font-size:.9rem;font-weight:500;letter-spacing:.02em;transition:color .15s ease}.hover-underline-animation{display:inline-block;position:relative;color:#94a3b8;transition:color .15s ease}.hover-underline-animation:hover{color:#f1f5f9}.hover-underline-animation:after{content:"";position:absolute;width:100%;transform:scaleX(0);height:2px;bottom:0;left:0;background:linear-gradient(135deg,#3b82f6,#7c3aed);transform-origin:bottom right;transition:transform .3s ease-out;border-radius:1px}.hover-underline-animation:hover:after{transform:scaleX(1);transform-origin:bottom left}@media screen and (max-width:1026px){#desktopNavbar,.gradient{display:none}.landingBar{position:absolute;top:2vw;right:2vw}}#projects{display:flex;flex-flow:column nowrap;background-color:#111827;width:100%;height:auto;padding:4rem 0;align-items:flex-start;position:relative}.arrowWrapper{width:2.5rem;height:2.5rem;border:1.5px solid rgba(255,255,255,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;position:absolute;top:45%;z-index:99;cursor:pointer;background:#0a0a1a99;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:inherit;padding:0;transition:all .15s ease}.arrowWrapper:hover:not(:disabled){border-color:#60a5fa;background:#60a5fa1a;box-shadow:0 0 20px #60a5fa26}.arrowWrapper:disabled{cursor:default;opacity:.3}.arrow{border:solid #94a3b8;border-width:0 2px 2px 0;display:inline-block;padding:4px}.right{transform:rotate(-45deg)}.left{transform:rotate(135deg)}.leftArrowWrapper{left:.5rem}.rightArrowWrapper{right:.5rem}.projectContainer{height:36.875rem;padding:1rem;position:relative;overflow:hidden}.projectContainer:focus-visible{outline:2px solid #60a5fa;outline-offset:-2px}.tileWrapper{height:100%;width:auto;position:absolute;transition:left .5s cubic-bezier(.4,0,.2,1)}.projectTileContainer{width:17.5rem;height:95%;display:flex;flex-flow:column nowrap;align-items:center;justify-content:flex-start;position:relative;color:#f1f5f9;border:1px solid rgba(255,255,255,.06);background-color:#1f2937;box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -2px #0000004d;border-radius:10px;transition:all .25s ease;overflow:hidden}.projectTileContainer:hover{border-color:#60a5fa4d;box-shadow:0 10px 15px -3px #0006,0 4px 6px -4px #0000004d,0 0 20px #60a5fa26;transform:translateY(-2px)}.projectTileContainer p{font-size:.95rem}.projName{font-size:1.4rem;font-weight:700;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;width:100%;text-align:center;color:#f1f5f9;margin:1rem 0 .5rem;letter-spacing:-.01em}.projectImg{object-fit:contain;overflow:hidden;max-height:100%;border-radius:50%}.imgWrapper{border-radius:50%;width:10rem;height:10rem;border:2px solid rgba(255,255,255,.1);margin:0 1.25rem;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#ffffff05}.github{border-radius:50%;border:2px solid rgba(255,255,255,.1)}.tech{color:#60a5fa;font-weight:600;text-align:center;width:100%;font-size:.8rem;font-family:JetBrains Mono,Fira Code,Consolas,monospace;letter-spacing:.02em}.desc{margin-left:.5rem;color:#94a3b8;font-size:.9rem;line-height:1.5}.tileLinks{position:absolute;bottom:2.5rem;left:0;width:100%;display:flex;justify-content:space-evenly;margin-bottom:.5rem}span.tileLinks *{color:#60a5fa;font-weight:600;font-size:.85rem;letter-spacing:.05em;text-transform:uppercase;text-decoration:underline;text-underline-offset:3px;transition:color .15s ease}span.tileLinks *:hover{color:#a78bfa}.projectBody{display:flex;max-width:31.25rem;flex-flow:column nowrap;align-items:flex-start;justify-content:center;margin:12px 16px}.date{position:absolute;bottom:.5rem;right:1rem;color:#64748b;font-size:.8rem;font-family:JetBrains Mono,Fira Code,Consolas,monospace}.slideIndicator{text-align:center;width:100%;margin-top:1rem;font-size:.85rem;color:#64748b;font-family:JetBrains Mono,Fira Code,Consolas,monospace}@media screen and (max-width:450px){.projectContainer{margin-left:2.1875rem}}@media screen and (max-width:410px){.projectContainer{margin-left:1.5625rem}}@media screen and (max-width:375px){.projectContainer{margin-left:.625rem}}#experience{display:flex;flex-flow:column nowrap;background-color:#0a0a1a;width:100%;height:auto;padding:4rem 0;align-items:center}.verticalTimeline{width:100%;height:auto}.iconWrapper{width:100%;height:100%;border-radius:50%;overflow:hidden}.workImg{object-fit:contain;width:100%;height:100%}.timelineTitle{font-weight:700;font-size:1.15rem;letter-spacing:-.01em}.timelineSubtitle{font-weight:500;font-size:.95rem;opacity:.85;margin-top:.25rem}.timelineBullets{margin:.75rem 0;padding-left:1.25rem}.timelineBullets li{margin-bottom:.5rem;line-height:1.5;font-size:.9rem}.tlDate{color:#94a3b8;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.85rem}@media screen and (max-width:1169px){.tlDate{color:#64748b}}#about{display:flex;flex-flow:column nowrap;background-color:#111827;width:100%;height:auto;padding:4rem 0;align-items:center;position:relative}.aboutContainer{width:100%;max-width:1200px;height:auto;display:flex;flex-flow:row wrap;align-items:center;justify-content:space-evenly;padding:0 2rem}.textContainer{width:60%}.headshotContainer{width:16rem;height:16rem;border:3px solid rgba(255,255,255,.1);border-radius:50%;overflow:hidden;display:flex;align-items:center;justify-content:center;margin-bottom:20px;margin-top:0;box-shadow:0 10px 15px -3px #0006,0 4px 6px -4px #0000004d,0 0 30px #60a5fa1a;transition:all .4s ease}.headshotContainer:hover{border-color:#60a5fa;box-shadow:0 10px 15px -3px #0006,0 4px 6px -4px #0000004d,0 0 40px #60a5fa33}.headshot{object-fit:contain;height:100%}.textContainer h3{font-size:2rem;font-weight:700;margin:0;letter-spacing:-.02em}.textContainer h4{margin:.25rem 0 1.25rem;color:#60a5fa;font-weight:500;font-size:1.1rem}.aboutBio{line-height:1.7;margin-bottom:2rem;font-size:1rem;color:#94a3b8}.skillsGrid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.5rem}.skillCategory{display:flex;flex-flow:column nowrap;padding:1rem;background-color:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:6px;border-left:3px solid #60a5fa;transition:all .15s ease}.skillCategory:hover{background-color:#ffffff0d;border-left-color:#a78bfa}.skillCategory:nth-child(2n){border-left-color:#a78bfa}.skillCategory:nth-child(2n):hover{border-left-color:#60a5fa}.skillCategory:nth-child(2n) .skillLabel{color:#a78bfa}.skillLabel{font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#60a5fa;margin-bottom:.375rem;font-family:JetBrains Mono,Fira Code,Consolas,monospace}.skillItems{font-size:.9rem;line-height:1.5;color:#94a3b8}.downloadResume{margin-top:2.5rem;padding:.75rem 2rem;border-radius:6px;background:linear-gradient(135deg,#3b82f6,#7c3aed);border:none;color:#fff;font-weight:600;font-size:.9rem;letter-spacing:.03em;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease;box-shadow:0 1px 2px #0000004d}.downloadResume:hover{background:linear-gradient(135deg,#2563eb,#6d28d9);box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -2px #0000004d,0 0 20px #60a5fa26;transform:translateY(-1px)}@media screen and (max-width:768px){.aboutContainer{flex-flow:column nowrap}.headshotContainer{order:1;width:12rem;height:12rem}.textContainer{order:2;width:90%}.skillsGrid{grid-template-columns:1fr}}#connect{display:flex;flex-flow:column nowrap;background-color:#0a0a1a;width:100%;height:auto;align-items:center;padding:4rem 0}.connectForm{display:flex;flex-flow:column nowrap;align-items:center;justify-content:center;width:90%;max-width:32rem}.connectForm input,.connectForm textarea{background-color:#1f2937;border:1px solid rgba(255,255,255,.06);border-radius:6px;color:#f1f5f9;padding:.75rem 1rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.95rem;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.connectForm input:focus,.connectForm textarea:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa26}.connectForm input::placeholder,.connectForm textarea::placeholder{color:#64748b}.connectForm label{margin-bottom:.5rem;font-size:.85rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.connectForm textarea{width:100%;min-height:8rem;resize:vertical}.nameEmail{display:flex;flex-flow:row wrap;width:100%;justify-content:space-between;gap:1rem}.email,.name{flex:1;min-width:0;display:flex;flex-flow:column nowrap}.message{width:100%;display:flex;flex-flow:column nowrap;margin-top:1rem}.submit{width:100%;display:flex;justify-content:center;margin-top:1.5rem}.submitBtn{padding:.75rem 3rem;background:linear-gradient(135deg,#3b82f6,#7c3aed);border:none;border-radius:6px;color:#fff;font-weight:600;font-size:.95rem;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #0000004d}.submitBtn:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#6d28d9);box-shadow:0 4px 6px -1px #0000004d,0 2px 4px -2px #0000004d,0 0 20px #60a5fa26;transform:translateY(-1px)}.submitBtn:disabled{opacity:.5;cursor:not-allowed;transform:none}.messageNotification{height:1.875rem;margin:1rem 0 0;padding:0;color:#60a5fa;font-size:.9rem;text-align:center}#footer{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;padding:2rem 0;position:relative;background-color:#111827;border-top:1px solid rgba(255,255,255,.06);gap:1rem}.footerLinks{display:flex;align-items:center;gap:.5rem}.footerCredit{color:#64748b;font-size:.8rem;text-align:center;margin:0;font-family:JetBrains Mono,Fira Code,Consolas,monospace}.signature{color:#64748b;width:6.25rem;text-align:center;margin-right:1.25rem}.resume-page{min-height:100vh;background-color:#0a0a1a;display:flex;justify-content:center;padding:2rem}.resume-container{max-width:52rem;width:100%;background-color:#fff;color:#1a1a1a;padding:2.5rem 3rem;border-radius:10px;box-shadow:0 10px 15px -3px #0006,0 4px 6px -4px #0000004d;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.9rem;line-height:1.5}.resume-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #3b82f6}.resume-name-block h1{font-size:2rem;font-weight:800;margin:0 0 .5rem;color:#111;letter-spacing:-.02em}.resume-contact-line{margin:.25rem 0;font-size:.85rem;color:#444}.resume-contact-line a{color:#3b82f6;text-decoration:none}.resume-contact-line a:hover{text-decoration:underline}.resume-separator{margin:0 .5rem;color:#999}.resume-section{margin-bottom:1.25rem}.resume-section h2{font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#3b82f6;border-bottom:1px solid #e5e7eb;padding-bottom:.25rem;margin:0 0 .75rem;text-align:left}.resume-section h2:after{display:none}.resume-skills-grid{display:flex;flex-direction:column;gap:.25rem}.resume-skill-row{display:flex;gap:.75rem;font-size:.85rem;line-height:1.6}.resume-skill-label{font-weight:700;min-width:8rem;color:#333}.resume-entry{margin-bottom:1rem}.resume-sub-entry{margin-left:1rem;padding-left:.75rem;border-left:2px solid #e5e7eb;margin-bottom:.75rem}.resume-entry-header{display:flex;justify-content:space-between;align-items:baseline;font-size:.9rem;gap:1rem}.resume-date{white-space:nowrap;color:#666;font-size:.85rem}.resume-tech{font-size:.8rem;color:#666;margin:.125rem 0 .25rem;font-family:JetBrains Mono,Fira Code,Consolas,monospace}.resume-entry ul{margin:.25rem 0 0;padding-left:1.25rem}.resume-entry ul li{margin-bottom:.2rem;font-size:.85rem;line-height:1.5}.resume-print-action{margin-top:2rem;display:flex;align-items:center;gap:1.5rem;justify-content:center}.resume-print-btn{padding:.6rem 1.5rem;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-weight:600;font-size:.9rem;cursor:pointer}.resume-print-btn:hover{background:#2563eb}.resume-back-link{color:#3b82f6;font-size:.9rem;text-decoration:none}.resume-back-link:hover{text-decoration:underline}@media print{html,body{background:#fff!important;margin:0!important;padding:0!important}.no-print{display:none!important}.resume-page{background:#fff;padding:0;min-height:0;display:block}.resume-container{max-width:100%;padding:0;box-shadow:none;border-radius:0;font-size:10pt}.resume-section:last-of-type{margin-bottom:0}.resume-name-block h1{font-size:18pt}.resume-section h2{font-size:10pt;color:#3b82f6!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.resume-header{border-bottom-color:#3b82f6!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}a{color:#333!important}}
