@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.1way2z9fj6cig.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.0szrwpqb9mkwe.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.45535valc9rzk.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_5972bc34-module__OU16Qa__className{font-family:Inter,Inter Fallback;font-style:normal}
:root{--site-bar-height:5.5rem;--header-height:var(--site-bar-height);--footer-height:4rem;--space-scene-height:400rem;--background-color:#15111f;--surface-color:#1d1729;--dropdown-color:#17121f;--surface-hover-color:#2a2239;--border-color:#382d4b;--text-color:#f5f1ff;--accent-color:#c4b5fd;--accent-hover-color:#cec2fd;--accent-transition-color:#a78bfa;--accent-dark-color:#7662b1;--accent-deep-color:#473c6b;--hover-scale-light:1.02;--hover-scale:1.1;--hover-scale-heavy:1.2;--accent-action-hover-background:linear-gradient(to bottom, var(--accent-color) 0%, var(--accent-transition-color) 50%, var(--accent-dark-color) 85%, var(--accent-deep-color) 100%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:var(--border-color) transparent;scrollbar-width:thin}html::-webkit-scrollbar{width:.5rem}html::-webkit-scrollbar-track{background:0 0}html::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:999px}body{background:var(--background-color);color:var(--text-color);margin:0}a{color:inherit;text-decoration:none}button{font:inherit}.site-bar{height:var(--site-bar-height);-webkit-backdrop-filter:blur(.5rem);backdrop-filter:blur(.5rem);background:#1d17291a}.site-bar__content{max-width:75rem;height:100%;margin:0 auto;padding:0 1rem}.header{z-index:10;border-bottom:1px solid var(--border-color);background:#1d1729b3;animation:.5s ease-out both header-appear;position:fixed;top:0;left:0;right:0}.header__content{justify-content:space-between;align-items:center;display:flex}.header__title{padding-left:.5rem;font-size:clamp(1.25rem,3vw,1.875rem);font-weight:700;transition:transform .2s}.header__title:hover{transform:scale(var(--hover-scale))}.header__nav,.header__actions{display:none}.header__menu-button,.header__social-button{width:3rem;height:3rem;color:inherit;cursor:pointer;border:0;border:1px solid var(--border-color);background:0 0;background:var(--surface-hover-color);border-radius:.75rem;place-items:center;padding:0;font-size:2rem;display:inline-grid}.header__menu-button:hover{background:linear-gradient(to right, var(--surface-hover-color) 0%, var(--surface-hover-color) 90%, var(--surface-color) 100%)}.header__social-button:hover{background:var(--accent-action-hover-background);color:#1a1325}.action-link{border:1px solid var(--border-color);background:var(--surface-hover-color);min-height:3rem;color:var(--text-color);text-align:center;border-radius:.75rem;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-weight:700;transition:background-color .2s,color .2s;display:inline-flex}.action-link svg{width:1.125rem;height:1.125rem}.action-link:hover,.project-card__action:hover{background:var(--accent-action-hover-background);color:#1a1325}.header__dropdown{z-index:9;top:var(--header-height);border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(.5rem);backdrop-filter:blur(.5rem);background:#17121fe6;gap:1rem;padding:1rem;display:grid;position:fixed;left:0;right:0}.header__mobile-nav{gap:1rem;display:grid}.header__mobile-link{width:100%;color:var(--text-color);border-radius:.375rem;padding:.75rem 0 .75rem 1rem;font-size:1.125rem;font-weight:700;transition:background-color .2s;display:block}.header__mobile-link:hover{background:#2a2239cc}.header__mobile-link-label{transform-origin:0;transition:transform .2s;display:inline-block}.header__mobile-link:hover .header__mobile-link-label{transform:scale(var(--hover-scale))}.header__mobile-social-actions{gap:.5rem;padding:0 0 0 .5rem;display:flex}.site-shell{isolation:isolate;position:relative;overflow:clip}.site-shell--exiting-to-expanse>:not(.space-scene){opacity:0;pointer-events:none}.site-shell>:not(.space-scene){transition:opacity .5s ease-out}.site-main{z-index:1;min-height:calc(100svh - var(--footer-height));padding-top:var(--header-height);position:relative}.site-main__content{z-index:2;position:relative}.space-scene{z-index:0;height:calc(var(--space-scene-height) + var(--footer-height));pointer-events:none;position:absolute;top:0;left:0;right:0;overflow:hidden}.content-section{min-height:20rem;scroll-margin-top:calc(var(--header-height) + 1rem);text-align:center;place-items:center;padding:1rem;display:grid}.hero+.content-section,.content-section+.content-section{margin-top:4rem}.content-section p{margin:0}.content-section--projects,.content-section--contact{flex-direction:column;align-items:center;gap:2rem;display:flex}.content-section__title{margin:0}.project-grid{grid-template-columns:1fr;gap:1.5rem;width:min(100%,75rem);display:grid}.card{-webkit-backdrop-filter:blur(.75rem);backdrop-filter:blur(.75rem);background:#0c0913b3;border:1px solid #382d4bb3;border-radius:1rem;min-height:18rem}.project-card{text-align:left;gap:.75rem;padding:.5rem;display:grid}.project-card__header{justify-content:space-between;align-items:center;gap:1rem;margin-top:.5rem;display:flex}.project-card__title{color:var(--accent-color);margin:0;font-size:1.375rem}.project-card__theme-toggle{border:1px solid var(--border-color);border-radius:.625rem;flex:none;display:inline-flex;overflow:hidden}.project-card__theme-button{background:var(--surface-color);width:2.5rem;height:2.5rem;color:var(--accent-dark-color);cursor:pointer;border:0;place-items:center;padding:0;transition:background-color .2s,color .2s;display:inline-grid}.project-card__theme-button+.project-card__theme-button{border-left:1px solid var(--border-color)}.project-card__theme-button:hover:not(.project-card__theme-button--active){background:var(--dropdown-color);color:var(--accent-color)}.project-card__theme-button--active{background:var(--surface-hover-color);color:var(--text-color)}.project-card__theme-button svg{width:1.25rem;height:1.25rem}.project-card__actions{gap:.75rem;width:100%;display:flex}.project-card__action{border:1px solid var(--border-color);background:var(--surface-hover-color);min-height:2.75rem;color:inherit;cursor:pointer;border-radius:.625rem;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.5rem .75rem;font-weight:700;display:inline-flex}.project-card__action svg{font-size:1.25rem}.project-card__screenshot{aspect-ratio:16/9;scrollbar-color:var(--border-color) transparent;scrollbar-width:thin;border-radius:.75rem;overflow:hidden auto}.project-card__screenshot-link{display:block}.project-card__image{width:100%;height:auto;display:block}.project-card__description{margin:0;font-size:.9rem;line-height:1.6}.project-card__content{gap:.75rem;padding-inline:1.5rem;display:grid}.project-card__skills-section{gap:.5rem;display:grid}.project-card__skills-title{color:var(--accent-color);margin:0;padding-bottom:.5rem;font-size:1.25rem}.project-card__skills{flex-wrap:wrap;gap:.75rem 1rem;margin:0;padding:0;list-style:none;display:flex}.project-card__skill{color:var(--skill-color,var(--accent-color));align-items:center;gap:.4rem;font-size:.875rem;font-weight:700;transition:transform .2s;display:inline-flex}.project-card__skill:hover{transform:scale(var(--hover-scale))}.project-card__skill-icon{flex:none}.contact-card{width:100%}.contact-card-reveal{width:min(100%,40rem)}.contact-form{text-align:left;gap:1rem;padding:1.5rem;display:grid}.contact-form__field{gap:.5rem;display:grid}.contact-form__label{color:var(--accent-color);font-weight:700}.contact-form__input{border:1px solid var(--border-color);width:100%;min-height:2.75rem;color:var(--text-color);font:inherit;background:#0c0913b3;border-radius:.75rem;padding:.75rem;transition:border-color .2s,box-shadow .2s,transform .2s}.contact-form__input:hover,.contact-form__input:focus{transform:scale(var(--hover-scale-light))}.contact-form__input:focus{border-color:var(--accent-color);outline:none;box-shadow:0 0 .75rem #c4b5fd4d}.contact-form__input--error,.contact-form__input--error:focus{border-color:#f87171;box-shadow:0 0 .75rem #f8717159}.contact-form__input::selection{color:#1a1325;text-shadow:0 0 .4rem #f5f1ffb3;background:#c4b5fd99}.contact-form__input--message{resize:vertical;min-height:10rem}.contact-form__errors{gap:.25rem;display:grid}.contact-form__error{color:#fca5a5;margin:0;font-size:.875rem;line-height:1.5}.contact-form__submission-status{margin:0;font-size:.875rem;line-height:1.5}.contact-form__submission-status--error{color:#fca5a5}.contact-form__submission-status--success{color:#bbf7d0}.contact-form__submit{background:var(--accent-color);color:#1a1325;cursor:pointer;width:100%;min-height:2.75rem;font:inherit;border:0;border-radius:.75rem;padding:0 1.25rem;font-weight:700;transition:background-color .2s,transform .2s}.contact-form__submit:hover{background:var(--accent-hover-color);transform:scale(var(--hover-scale-light))}.contact-form__submit:disabled{cursor:wait;opacity:.7}.hero{scroll-margin-top:calc(var(--header-height) + 1rem);align-items:center;padding:1rem;display:grid}.hero__content{gap:1rem;width:min(100%,75rem);margin:0 auto;display:grid}.hero__copy{text-align:center;align-content:center;padding-inline:3rem;display:grid}.hero__title{margin:1rem 0 0;animation:.55s ease-out .2s both hero-content-appear}.hero__software,.hero__engineer,.hero__paragraph{margin:0}.hero__software,.hero__engineer{display:block}.hero__software,.hero__engineer,.content-section__title{font-size:4rem;font-weight:700;line-height:.95}.hero__engineer,.content-section__title{color:var(--accent-color)}.hero__paragraph{text-shadow:0 0 .3rem var(--background-color);font-size:1.125rem;line-height:1.6;animation:.55s ease-out .3s both hero-content-appear}.hero__paragraph+.hero__paragraph{margin-top:3rem}.hero__skills{gap:2rem;margin-top:1.5rem;display:grid}.hero__skill-group{flex-wrap:wrap;justify-content:center;gap:1.25rem;display:flex}.hero__skill-group+.hero__skill-group{padding-top:2rem;position:relative}.hero__skill-separator{border-top:1px solid #382d4b8c;width:35%;position:absolute;top:0;left:50%;transform:translate(-50%)}.skill-icon{color:var(--skill-color);position:relative}.skill-icon__icon{transition:filter .2s,transform .2s;display:block}.skill-icon__label{color:var(--skill-color);opacity:0;white-space:nowrap;font-size:.875rem;font-weight:700;transition:opacity .2s,transform .2s;position:absolute;top:calc(100% + .25rem);left:50%;transform:translate(-50%,-.25rem)}.skill-icon:hover .skill-icon__icon{filter:drop-shadow(0 0 .35rem var(--skill-color));transform:scale(var(--hover-scale-heavy))}.skill-icon:hover .skill-icon__label{opacity:1;transform:translate(-50%)}.hero__actions{gap:1rem;width:100%;margin-top:2rem;display:grid}.hero__action-reveal{display:grid}.hero__action-reveal .action-link{width:100%}.expanse-page{min-height:calc(var(--space-scene-height) - var(--header-height))}.about-page__content{justify-items:center;gap:2rem;width:min(100%,48rem);display:grid}.about-accordion{gap:.75rem;width:100%;display:grid}.about-accordion-reveal{width:100%}.about-accordion__item{-webkit-backdrop-filter:blur(.75rem);backdrop-filter:blur(.75rem);background:#0c0913b3;border:1px solid #382d4bb3;border-radius:.75rem;display:grid;overflow:hidden}.about-accordion__trigger{width:100%;color:var(--text-color);cursor:pointer;font:inherit;text-align:center;background:0 0;border:0;padding:1rem 1.25rem;font-weight:700;transition:background-color .2s,color .2s}.about-accordion__trigger:hover,.about-accordion__trigger--open{background:var(--surface-hover-color);color:var(--accent-color)}.about-accordion__trigger--open{box-shadow:inset 0 -1px 0 var(--border-color)}.about-accordion__trigger:focus-visible{outline:2px solid var(--accent-color);outline-offset:.2rem}.about-accordion__panel{text-align:left;gap:1rem;padding:1.5rem;display:grid}.about-accordion__panel-reveal{overflow:hidden}.about-accordion__paragraph{margin:0;line-height:1.7}.hero__image-figure{text-align:center;justify-self:center;width:min(100%,24rem);margin:0}.hero__image-container{z-index:1;aspect-ratio:4/5;background:linear-gradient(var(--background-color), var(--background-color)) padding-box, linear-gradient(to bottom right, #9689bfcc, #4c416bcc) border-box;border:.75rem solid #0000;border-radius:50%;width:100%;animation:.7s ease-out both hero-image-container-appear;position:relative;overflow:hidden;box-shadow:0 0 3rem #9689bf40}.hero__image-details{z-index:0;gap:.15rem;margin-top:.75rem;animation:.6s ease-out .1s both hero-image-details-appear;display:grid;position:relative}.hero__image-name{font-size:1.25rem;font-weight:700}.hero__image-location{color:var(--accent-color);font-size:1rem}.hero__resume-link{justify-self:center;margin-top:.5rem}.hero__image{object-fit:cover;object-position:right center;transform-origin:100%;width:100%;height:100%;display:block;transform:translateY(6%)scale(1.12)}.footer.site-bar{z-index:2;height:var(--footer-height);min-height:var(--footer-height);max-height:var(--footer-height);border-top:1px solid var(--border-color);position:relative}.footer__content{align-items:center;display:flex}.footer__content p{margin:0}.planet.glow{z-index:0;--planet-scale:clamp(.8, calc(.8 + ((100vw - 768px) / 232px) * .2), 1);width:calc(var(--planet-diameter) * var(--planet-scale));aspect-ratio:1;pointer-events:none;border-radius:50%;display:block;position:absolute;transform:translate(-50%,-50%)}.planet--one{top:1%;left:110%}.planet--two{top:60%;left:85%}.planet--three{top:4%;left:8%}.planet--four{top:65%;left:15%}.planet--five{top:15%;left:82%}.planet__surface{z-index:1;background:radial-gradient(circle,#251d38 0 50%,#8175b659 100%);border-radius:50%;display:block;position:absolute;inset:0}.star.glow{z-index:1;top:var(--star-y);left:var(--star-x);width:var(--star-size);aspect-ratio:1;pointer-events:none;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.star-field{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.star__surface{z-index:1;border-radius:inherit;background:radial-gradient(circle, var(--star-color) 0, #f5f1ffbf 24%, #f5f1ff4d 48%, transparent 74%);opacity:var(--star-opacity);display:block;position:absolute;inset:0}.shooting-star.glow{z-index:2;pointer-events:none;position:absolute}.shooting-star-manager{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.shooting-star__frame{pointer-events:none;position:absolute;top:0;left:0;overflow:hidden}.shooting-star__trail{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:visible}.shooting-star__tail{fill:none;stroke-linecap:round;stroke-width:2px;filter:drop-shadow(0 0 .25rem #f5f1ff);opacity:.8}.shooting-star .star__surface{z-index:2}.glow{isolation:isolate;position:relative}span.glow{display:inline-block}.glow__content{z-index:1;position:relative}.header__social-button.glow>svg{z-index:1;display:block;position:relative}.glow:before{z-index:0;inset:var(--glow-offset);border-radius:var(--glow-border-radius);background:var(--glow-background);content:"";filter:blur(var(--glow-size));opacity:var(--glow-opacity);pointer-events:none;position:absolute}.glow--ellipse:before{width:var(--glow-ellipse-width);height:var(--glow-ellipse-height);transform:translate(-50%, -50%) rotate(var(--glow-rotation));border-radius:50%;inset:50% auto auto 50%}.glow--hover:before{opacity:0;transition:opacity .2s}.glow--hover:hover:before{opacity:var(--glow-opacity)}.glow--pulse:before{animation:glow-pulse var(--glow-pulse-duration) ease-in-out infinite}@keyframes glow-pulse{0%,to{inset:calc(var(--glow-offset) * var(--glow-pulse-size-min));filter:blur(calc(var(--glow-size) * var(--glow-pulse-size-min)));opacity:clamp(0, calc(var(--glow-opacity) * var(--glow-pulse-min)), 1)}50%{inset:calc(var(--glow-offset) * var(--glow-pulse-size-max));filter:blur(calc(var(--glow-size) * var(--glow-pulse-size-max)));opacity:clamp(0, calc(var(--glow-opacity) * var(--glow-pulse-max)), 1)}}@keyframes header-appear{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes hero-image-container-appear{0%{transform:translateY(2rem)scale(.94)}to{transform:translateY(0)scale(1)}}@keyframes hero-image-details-appear{0%{transform:translateY(1.5rem)scale(.96)}to{transform:translateY(0)scale(1)}}@keyframes hero-content-appear{0%{transform:translateY(1.5rem)scale(.97)}to{transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.header,.hero__image-container,.hero__image-details,.hero__title,.hero__paragraph,.glow--pulse:before{animation:none}.shooting-star.glow{animation:none;top:50svh;left:50svw;transform:translate(-50%,-50%)}}@media (max-width:34.375rem){.hero__image-figure{width:clamp(16rem,55.7vw + 4.875rem,24rem)}.hero__copy{padding-inline:1rem}.hero__software,.hero__engineer,.content-section__title{font-size:clamp(2.75rem,8.7vw + 1rem,4rem)}}@media (min-width:48rem){.hero+.content-section,.content-section+.content-section{margin-top:8rem}.contact-card{max-width:40rem}.hero__content{grid-template-columns:minmax(0,1fr) clamp(18rem,44.44vw - 5.33rem,35rem);align-items:center;gap:clamp(2rem,6%,6rem)}.hero__copy{grid-area:1/1}.hero__image-figure{grid-area:1/2;width:clamp(18rem,44.44vw - 5.33rem,28rem)}.hero__actions{flex-wrap:wrap;justify-content:center;display:flex}.hero__action-reveal .action-link{width:auto}.site-bar__content{padding:0 2rem}.header__content{justify-content:flex-start;gap:2rem;position:relative}.header__nav{gap:1.5rem;font-size:1.125rem;font-weight:700;display:flex;position:absolute;left:50%;transform:translate(-50%)}.header__nav-link{color:#b8aecd;transition:color .2s,transform .2s;display:inline-flex}.header__nav-link-label{z-index:1;position:relative}.header__nav-link:hover{color:var(--text-color);transform:scale(var(--hover-scale))}.header__actions{align-items:center;gap:.75rem;margin-left:auto;display:flex}.header__contact-button{background:var(--accent-color);color:#1a1325;border-radius:.75rem;align-items:center;min-height:2.5rem;padding:0 1.25rem;font-size:1rem;font-weight:700;transition:background-color .2s,transform .2s;display:inline-flex}.header__contact-button:hover{background:var(--accent-hover-color);transform:scale(var(--hover-scale))}.header__menu-button,.header__dropdown{display:none}.planet--one{top:1%;left:20%}.planet--two{top:16%;left:90%}.planet--three{top:15%;left:13%}.planet--four{top:68%;left:15%}.planet--five{top:62%;left:67%}}@media (min-width:48rem) and (max-width:62.4375rem){:root{--site-bar-height:7rem}.header__content{grid-template-rows:3rem 1fr;grid-template-columns:minmax(0,1fr) auto;gap:0;display:grid}.header__title{grid-area:1/1/auto/-1;align-self:center;padding-top:1rem;font-size:1.875rem}.header__nav{grid-area:2/1;justify-self:start;align-items:center;gap:3rem;position:static;transform:none}.header__actions{grid-area:2/2;margin-left:0}}@media (min-width:62.5rem){:root{--space-scene-height:200rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.planet--one{top:1%;left:20%}.planet--two{top:30%;left:85%}.planet--three{top:20%;left:13%}.planet--four{top:90%;left:15%}.planet--five{top:80%;left:80%}}
