*,: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.17 | 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;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{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{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-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::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}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-2{bottom:.5rem}.left-0{left:0}.left-2{left:.5rem}.right-2{right:.5rem}.right-3{right:.75rem}.top-0{top:0}.top-3{top:.75rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-6{margin-bottom:1.5rem}.ml-4{margin-left:1rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-3{margin-top:.75rem}.flex{display:flex}.grid{display:grid}.aspect-square{aspect-ratio:1/1}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-\[45\%\]{height:45%}.h-\[52\%\]{height:52%}.h-auto{height:auto}.h-full{height:100%}.min-h-\[730px\]{min-height:730px}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-8{width:2rem}.w-full{width:100%}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.origin-left{transform-origin:left}.translate-x-4{--tw-translate-x:1rem}.-rotate-90,.translate-x-4{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))}.-rotate-90{--tw-rotate:-90deg}.transform{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))}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-end{align-items:flex-end}.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-4{gap:1rem}.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))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-white\/20{border-color:hsla(0,0%,100%,.2)}.bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.bg-green-500\/20{background-color:rgba(34,197,94,.2)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/10{background-color:hsla(0,0%,100%,.1)}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black\/70{--tw-gradient-from:rgba(0,0,0,.7) var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.fill-green-500{fill:#22c55e}.fill-white{fill:#fff}.fill-white\/60{fill:hsla(0,0%,100%,.6)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-4xl{font-size:2.25rem;line-height:2.5rem}.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}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-none{line-height:1}.tracking-widest{letter-spacing:.1em}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-cyan-300{--tw-text-opacity:1;color:rgb(103 232 249/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/60{color:hsla(0,0%,100%,.6)}.text-white\/80{color:hsla(0,0%,100%,.8)}.text-white\/90{color:hsla(0,0%,100%,.9)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-md,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.transition-all{transition-property:all;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}.duration-300{transition-duration:.3s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-300{animation-duration:.3s}:root{color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body,html{background:#0d0d0d}body{margin:0;color:#dedede;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}.portfolio{width:min(690px,calc(100% - 36px));margin:0 auto;padding:52px 0 28px}.intro{display:flex;justify-content:space-between}.intro h1{margin:0;font-size:19px;letter-spacing:-.04em}.about,.intro p,.timeline-item p{color:#aaa}.intro p{margin:5px 0 0;font-size:12px}.contact-icons{display:flex;gap:11px;color:#aaa}.contact-icons a{transition:color .2s,transform .2s}.contact-icons a:hover{color:#fff;transform:translateY(-2px)}.contact-icons svg{width:15px;height:15px}.about{margin:33px 0 46px;font-size:14px;line-height:1.5;max-width:650px}.about p{margin:0 0 10px}.about a:not(.bright-button):not(.outline-button){color:#f1f1f1;border-bottom:1px solid #888}.intro-actions{display:flex;gap:7px;margin-top:19px}.bright-button,.outline-button{font-size:11px;border-radius:7px;padding:7px 9px;display:inline-flex;align-items:center;gap:5px;transition:transform .2s,background .2s}.bright-button:hover,.outline-button:hover{transform:translateY(-2px)}.bright-button{background:#f1f1f1;color:#101010;font-weight:600}.outline-button{border:1px solid #383838;color:#ddd}.performance{margin:0 0 48px;overflow:auto;padding-bottom:5px}.performance h2,.section-title h2{font-size:17px;margin:0;font-weight:500;letter-spacing:-.04em}.performance svg{margin-top:18px;min-width:680px}.inline-section{margin-top:45px}.section-title{justify-content:space-between;margin-bottom:20px}.section-title,.see-toggle{display:flex;align-items:center}.see-toggle{border:1px solid #303030;background:#171717;color:#aaa;font-size:10px;border-radius:999px;gap:2px;cursor:pointer;padding:4px 7px;transition:color .2s,border-color .2s,transform .2s}.see-toggle:hover{color:#fff;border-color:#5a5a5a;transform:translateY(-1px)}.see-toggle svg{width:12px}.experience-timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.experience-timeline article{position:relative;display:flex;gap:8px;min-height:68px;padding-top:16px;border-top:1px solid #323232}.experience-timeline article>i{position:absolute;width:8px;height:8px;border-radius:50%;background:#aaa;top:-4px;left:7px;border:2px solid #0d0d0d}.experience-timeline article:first-child>i{background:#fff;box-shadow:0 0 0 3px #4e4e4e}.detail-icon,.timeline-icon{display:grid;place-items:center;flex:0 0 auto;width:29px;height:29px;border:1px solid #454545;border-radius:7px;background:#252525;color:#bbb}.timeline-icon svg{width:14px}.experience-timeline h3{margin:2px 0;font-weight:500;font-size:12px}.experience-timeline p,.experience-timeline small{margin:0;color:#aaa;font-size:10px}.experience-timeline small{display:block;margin-top:7px}.expanded-experience{display:grid;gap:25px}.expanded-experience article{display:grid;grid-template-columns:41px 1fr auto;gap:13px;align-items:start}.expanded-experience h3{font-size:15px;margin:0 0 2px;font-weight:500}.expanded-experience p{color:#aaa;margin:0;font-size:12px}.expanded-experience ul{margin:15px 0 0;padding-left:15px;color:#aaa;font-size:12px;line-height:1.45}.expanded-experience li{margin-bottom:7px}.expanded-experience time{color:#aaa;font-size:11px;white-space:nowrap}.skill-list{display:grid;gap:13px}.skill-row-expand{display:grid;grid-template-rows:1fr;transition:grid-template-rows .48s cubic-bezier(.16,1,.3,1),opacity .35s}.skill-row-expand.is-extra{grid-template-rows:0fr;opacity:0}.skill-row-expand.is-extra.is-open{grid-template-rows:1fr;opacity:1}.skill-row-inner{min-height:0;overflow:hidden}.skill-row,.skill-row-inner{grid-template-columns:112px 1fr;gap:12px}.skill-row-inner{display:grid}.skill-row-inner>span{color:#aaa;font-size:12px}.skill-row-inner>div{display:flex;gap:8px 14px;flex-wrap:wrap}.skill-more{display:grid;grid-template-columns:0fr;transition:grid-template-columns .42s cubic-bezier(.16,1,.3,1);width:0}.skill-more.is-open{grid-template-columns:1fr;width:auto}.skill-more>a{opacity:0;transform:translateY(-4px);transition:opacity .28s .13s,transform .28s .13s}.skill-more.is-open>a{opacity:1;transform:translateY(0)}.skill{display:inline-flex;align-items:center;gap:5px;color:#b5b5b5;font-size:12px;white-space:nowrap;transition:color .2s,transform .2s}.skill:hover{color:#fff;transform:translateY(-1px)}.skill img{width:14px;height:14px;object-fit:contain;filter:grayscale(1)}.skill b{font-weight:400}.bento{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:9px;margin-top:45px}.bento article{min-height:150px;border:1px solid #303030;border-radius:10px;overflow:hidden;position:relative;transition:transform .25s,border-color .25s}.bento article:hover{transform:translateY(-3px);border-color:#555}.learn-card{padding:14px;background:linear-gradient(140deg,#181818,#252525)}.learn-card>svg{color:#aaa;width:17px}.learn-card p,.photo-card p{color:#aaa;font-size:9px;margin:14px 0 6px}.learn-logos{display:flex;gap:6px;position:absolute;right:11px;top:10px}.learn-logos img{width:20px;height:20px}.learn-card h3,.photo-card h3,.spotify-card h3{margin:0;font-size:20px;letter-spacing:-.05em}.learn-card span{display:block;color:#aaa;font-size:9px;margin-top:6px}.spotify-card>img{width:100%;height:100%;object-fit:cover;filter:brightness(.56)}.spotify-card>div{position:absolute;left:13px;bottom:13px}.spotify-card svg{color:#1ed760;width:15px}.spotify-card p{margin:5px 0;color:#dedede;font-size:9px}.spotify-card h3{font-size:18px}.spotify-card>a{position:absolute;right:11px;bottom:11px;display:grid;place-items:center;border-radius:50%;width:25px;height:25px;background:#1ed760;color:#102016;font-size:14px}.photo-card img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);opacity:.56}.photo-card>div{position:absolute;left:13px;bottom:11px}.photo-card p{margin:0 0 5px}.photo-card h3{font-size:16px}.projects{padding-bottom:20px}.project-list{display:grid;gap:8px}.project{padding:8px 36px 10px 0;position:relative;transition:transform .22s}.project:hover{transform:translateX(4px)}.project h3{font-size:16px;margin:0 0 4px;letter-spacing:-.04em}.project p{color:#999;font-size:12px;line-height:1.42;max-width:590px;margin:0 0 9px}.project>div{display:flex;flex-wrap:wrap;gap:5px}.project span{font-family:monospace;color:#8c8c8c;background:#171717;padding:3px 7px;border-radius:999px;font-size:9px}.project-link{position:absolute;right:0;top:8px;padding:4px;color:#777;transition:color .2s,transform .2s}.project-link:hover{color:#fff;transform:translate(2px,-2px)}.project-link svg{width:16px}footer{border-top:1px solid #292929;margin-top:48px;padding-top:14px;display:flex;justify-content:space-between;color:#777;font-size:10px}footer a{color:#aaa}.reveal{animation:reveal .3s ease-out both}@keyframes reveal{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:650px){.portfolio{width:min(100% - 32px,560px);padding-top:38px}.intro{align-items:flex-start}.contact-icons{gap:11px}.about{font-size:15px;margin:35px 0 50px}.performance{margin-bottom:55px}.inline-section{margin-top:52px}.experience-timeline{grid-template-columns:1fr}.experience-timeline article{min-height:66px}.skill-row{grid-template-columns:1fr;gap:12px}.bento{grid-template-columns:1fr 1fr}.spotify-card{grid-column:span 2}.photo-card{display:none}.expanded-experience article{grid-template-columns:44px 1fr}.expanded-experience time{grid-column:2;font-size:12px}.project{padding:10px 38px 12px 0}.project p{font-size:13px;padding-right:5px}.project-link{right:0;top:10px}.project h3{padding-right:44px}footer{margin-top:50px}}.skill-more{display:flex;gap:8px 14px;flex-wrap:wrap;max-width:0;max-height:0;opacity:0;overflow:hidden;transition:max-width .45s cubic-bezier(.16,1,.3,1),max-height .45s cubic-bezier(.16,1,.3,1),opacity .24s}.skill-more.is-open{max-width:560px;max-height:120px;opacity:1}.expanded-experience.reveal{overflow:hidden;animation:expand-content .48s cubic-bezier(.16,1,.3,1) both}@keyframes expand-content{0%{opacity:0;max-height:0;transform:translateY(-8px)}to{opacity:1;max-height:900px;transform:translateY(0)}}@media(max-width:650px){.skill-row-inner{grid-template-columns:1fr;gap:9px}.skill-more.is-open{max-width:100%;max-height:160px}}.portfolio{width:min(610px,calc(100% - 32px))}.about{max-width:590px;font-size:13px}.skill-list{gap:15px}.skill-list-reveal{overflow:hidden;animation:skills-reveal .46s cubic-bezier(.16,1,.3,1) both}.skill-row-simple{display:grid;grid-template-columns:118px 1fr;gap:12px}.skill-row-simple>span{color:#aaa;font-size:12px}.skill-row-simple>div{display:flex;gap:9px 14px;flex-wrap:wrap}.skill-list-reveal .skill{animation:skill-in .32s cubic-bezier(.16,1,.3,1) both}.skill-list-reveal .skill:nth-child(2n){animation-delay:35ms}.skill-list-reveal .skill:nth-child(3n){animation-delay:.07s}.skill-list-reveal .skill:nth-child(4n){animation-delay:.105s}@keyframes skills-reveal{0%{opacity:0;max-height:50px;transform:translateY(-7px)}to{opacity:1;max-height:800px;transform:translateY(0)}}@keyframes skill-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:650px){.portfolio{width:min(100% - 30px,610px)}.skill-row-simple{grid-template-columns:1fr;gap:8px}.skill-row-simple>div{gap:8px 12px}}.profile-banner{height:203px;position:relative;margin-bottom:58px}.banner-image{height:100%;width:100%;border-radius:8px;background-image:linear-gradient(120deg,rgba(0,0,0,.2),rgba(0,0,0,.58)),url(/banner.jpg),linear-gradient(120deg,#2b3739,#121514 58%,#453c2b);background-size:cover;background-position:50%}.profile-photo-wrap{position:absolute;left:20px;bottom:-44px;width:88px;height:88px;perspective:600px}.profile-photo{position:relative;width:100%;height:100%;transition:transform .65s cubic-bezier(.16,1,.3,1)}.photo-face{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;border:3px solid #0d0d0d}.photo-back{transform:rotateY(180deg)}.photo-flip{position:absolute;z-index:2;right:-1px;bottom:-1px;width:27px;height:27px;border:2px solid #0d0d0d;border-radius:50%;display:grid;place-items:center;background:#f2f2f2;color:#111;cursor:pointer;transition:transform .2s}.photo-flip:hover{transform:scale(1.1) rotate(25deg)}@media(max-width:650px){.profile-banner{height:calc((100vw - 30px)/3);min-height:115px;margin-bottom:51px}.profile-photo-wrap{left:14px;width:78px;height:78px;bottom:-39px}}.profile-banner{height:112px}.profile-photo-wrap{left:18px;bottom:-38px;width:76px;height:76px}.photo-face{border-radius:13px;border-width:3px}.photo-flip{width:24px;height:24px;right:-5px;bottom:-5px}.intro{min-height:72px;padding-left:108px;align-items:center}.intro .role-rotate{animation:role-swap .42s cubic-bezier(.16,1,.3,1) both}@keyframes role-swap{0%{opacity:0;transform:translateY(7px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@media(max-width:650px){.profile-banner{height:calc((100vw - 30px)/5.45);min-height:70px;margin-bottom:15px}.profile-photo-wrap{left:13px;bottom:-34px;width:68px;height:68px}.intro{padding-left:94px;min-height:64px}.intro h1{font-size:17px}.intro p{font-size:11px}}.intro{position:relative;z-index:1;margin-top:-54px}@media(max-width:650px){.intro{margin-top:-47px}}.profile-photo-wrap{width:92px;height:92px;bottom:-92px}.intro{margin-top:0;padding-left:122px;min-height:92px}.profile-banner{margin-bottom:18px}@media(max-width:650px){.profile-photo-wrap{width:76px;height:76px;bottom:-76px}.intro{margin-top:0;padding-left:101px;min-height:76px}}.portfolio{padding-top:28px}.profile-photo-wrap{bottom:-55px}.profile-banner{margin-bottom:12px}.intro{min-height:76px}@media(max-width:650px){.portfolio{padding-top:24px}.profile-photo-wrap{bottom:-46px}.intro{min-height:64px}}.intro{margin-top:-10px;min-height:66px}.intro p{margin-top:2px}.about{margin-top:18px}@media(max-width:650px){.intro{margin-top:-8px;min-height:58px}.about{margin-top:16px}}.profile-photo{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.photo-face{-webkit-backface-visibility:hidden;backface-visibility:hidden}.photo-front{transform:translateZ(1px)}.photo-back{transform:rotateY(180deg) translateZ(1px)}.profile-photo.is-flipped{transform:rotateY(180deg)}.profile-photo{transform:none!important}.photo-face{backface-visibility:visible!important;-webkit-backface-visibility:visible!important;opacity:1;transition:opacity .18s ease,transform .42s cubic-bezier(.16,1,.3,1)}.photo-front{transform:rotateY(0)!important}.photo-back{opacity:0;transform:rotateY(-90deg)!important}.profile-photo.is-flipped .photo-front{opacity:0;transform:rotateY(90deg)!important}.profile-photo.is-flipped .photo-back{opacity:1;transform:rotateY(0)!important}.skill{cursor:default}.profile-photo-wrap{z-index:3}.portfolio{animation:portfolio-enter .45s ease;transition:opacity .28s ease,transform .28s ease}.portfolio.portfolio-leaving{opacity:0;transform:translateY(-8px);transition-delay:.16s}.profile-photo{display:block;padding:0;border:0;background:transparent;cursor:pointer}.profile-photo:focus-visible{outline:2px solid #fff;outline-offset:5px;border-radius:13px}@keyframes portfolio-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.portfolio{animation:none;transition:none}.portfolio.portfolio-leaving{transform:none;transition:none}}@media(max-width:760px){body,html{overflow-x:hidden}.portfolio{width:calc(100% - 28px);max-width:610px;padding:22px 0 28px}.profile-banner{height:max(72px,18.35vw);margin-bottom:10px}.profile-photo-wrap{left:12px;bottom:-40px;width:72px;height:72px}.photo-flip{width:23px;height:23px}.intro{min-height:68px;margin-top:0;padding-left:96px;gap:8px}.intro h1{font-size:16px;white-space:nowrap}.intro p{font-size:11px}.contact-icons{gap:8px;flex-shrink:0}.contact-icons svg{width:14px;height:14px}.about{font-size:13px;line-height:1.48;margin:16px 0 38px}.performance{max-width:100%;margin-bottom:42px}.performance svg{min-width:620px}.inline-section{margin-top:38px}.experience-timeline{grid-template-columns:1fr;gap:0}.experience-timeline article{min-height:62px}.expanded-experience article{grid-template-columns:36px 1fr;gap:10px}.expanded-experience time{grid-column:2;font-size:10px}.skill-row-simple{grid-template-columns:1fr;gap:7px}.skill-row-simple>div{gap:8px 12px}.bento{grid-template-columns:1fr 1fr;gap:8px;margin-top:38px}.bento article{min-height:128px}.spotify-card{grid-column:span 2}.photo-card{display:none}.project{padding:8px 31px 9px 0}.project p{font-size:12px}.project-link{right:0}.projects{padding-bottom:0}footer{margin-top:38px}}.experience-timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px}.company-logo{display:block;flex:0 0 auto;width:29px;height:29px;object-fit:cover;border-radius:50%}.expanded-experience .company-logo{width:34px;height:34px}@media(max-width:650px){.experience-timeline{grid-template-columns:1fr;gap:0}}@media(max-width:760px){.intro{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;justify-content:normal}.intro>div:first-child{min-width:0}.intro .role-rotate{display:block;height:14px;line-height:14px;white-space:nowrap;overflow:hidden}.contact-icons{justify-self:end}.about{margin-top:6px}.bento{grid-template-columns:1fr 1fr}.spotify-card{min-height:142px!important}.photo-card{grid-column:span 2;min-height:124px!important}.photo-card img,.spotify-card>img{display:block}.photo-card>div{z-index:1}.intro{min-height:54px}.contact-icons{align-self:start;margin-top:12px}.about{margin-top:0}.intro{transform:translateY(-10px)}.learn-card{grid-column:1;grid-row:1}.photo-card{display:block;grid-column:2;grid-row:1;min-height:150px!important}.spotify-card{grid-column:span 2;grid-row:2}.photo-card img{height:100%;object-position:center top}}.hover\:-translate-y-1:hover{--tw-translate-y:-0.25rem}.hover\:-translate-y-1:hover,.hover\:translate-x-1:hover{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\:translate-x-1:hover{--tw-translate-x:0.25rem}.hover\:bg-white\/20:hover{background-color:hsla(0,0%,100%,.2)}.hover\:text-cyan-200:hover{--tw-text-opacity:1;color:rgb(165 243 252/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:ml-10{margin-left:2.5rem}.sm\:p-6{padding:1.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}}@media (min-width:768px){.md\:text-6xl{font-size:3.75rem;line-height:1}}