@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-20C0,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);--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;--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;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}.header__nav,.header__actions{display:none}.header__menu-button,.header__social-button{width:3rem;height:3rem;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:.75rem;place-items:center;padding:0;font-size:1.25rem;display:inline-grid}.header__menu-button:hover{background:var(--surface-hover-color)}.header__menu-button,.header__social-button{border:1px solid var(--border-color);background:var(--surface-hover-color);font-size:2rem}.header__social-button:hover{background:var(--accent-color);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-social-actions{gap:.5rem;padding:0 0 0 .5rem;display:flex}main{min-height:calc(100svh - var(--header-height));padding-top:var(--header-height);isolation:isolate;position:relative;overflow-x:clip}main>section{z-index:2;position:relative}.space-scene{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.content-section{text-align:center;place-items:center;min-height:20rem;padding:4rem 1rem;display:grid}.content-section:before{border-top:1px solid var(--border-color);content:"";position:absolute;top:0;left:10%;right:10%}.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 .5rem 2rem;display:grid}.project-card__header{justify-content:space-between;align-items:center;gap:1rem;margin-top:.5rem;display:flex}.project-card__title{margin:0;font-size:1.375rem}.project-card__actions{gap:.5rem;display:flex}.project-card__action{border:1px solid var(--border-color);background:var(--surface-hover-color);width:2.375rem;height:2.375rem;color:inherit;cursor:pointer;border-radius:.625rem;place-items:center;padding:0;font-size:1.5rem;display:inline-grid}.project-card__action:hover{background:var(--accent-color);color:#1a1325}.project-card__screenshot{aspect-ratio:16/9;scrollbar-color:var(--border-color) transparent;scrollbar-width:thin;border-radius:.75rem;overflow:hidden auto}.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:.5rem;margin:0;padding:0;list-style:none;display:flex}.project-card__skill{color:var(--accent-color);text-align:center;background:#c4b5fd1a;border:1px solid #c4b5fd59;border-radius:999px;padding:.4rem .625rem;font-size:.875rem}.contact-card{width:100%}.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}.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;min-height:3.125rem;display:grid}.contact-form__error{color:#fca5a5;visibility:hidden;margin:0;font-size:.875rem;line-height:1.5}.contact-form__error--visible{visibility:visible}.contact-form__submission-status{visibility:hidden;min-height:1.5rem;margin:0;font-size:.875rem;line-height:1.5}.contact-form__submission-status--error{color:#fca5a5;visibility:visible}.contact-form__submission-status--success{color:#bbf7d0;visibility:visible}.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}.contact-form__submit:hover{background:var(--accent-hover-color)}.contact-form__submit:disabled{cursor:wait;opacity:.7}.hero{min-height:calc(100svh - var(--header-height));align-items:center;padding:2rem 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 3rem}.hero__software,.hero__engineer,.hero__paragraph{margin:0}.hero__software,.hero__engineer{font-size:clamp(6.5rem,12vw,7rem);font-weight:700;line-height:.95;display:block}.hero__engineer,.content-section__title{color:var(--accent-color);font-size:4rem;font-weight:700;line-height:.95}.hero__paragraph{text-shadow:0 0 .3rem var(--background-color);font-size:1.125rem;line-height:1.6}.hero__paragraph+.hero__paragraph{margin-top:3rem}.hero__image-container{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%;justify-self:center;width:min(100%,24rem);overflow:hidden;box-shadow:0 0 3rem #9689bf40}.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{z-index:2;border-top:1px solid var(--border-color);height:4rem;position:relative}.footer__content{align-items:center;display:flex}.footer__content p{margin:0}.planet.glow{display:none}.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)}}@media (prefers-reduced-motion:reduce){.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-container{width:clamp(16rem,55.7vw + 4.875rem,24rem)}.hero__copy{padding-inline:1rem}.hero__software{font-size:clamp(3.5rem,20.9vw - .7rem,6.5rem)}.hero__engineer,.content-section__title{font-size:clamp(2.75rem,8.7vw + 1rem,4rem)}}@media (max-width:22rem){.project-card__header{flex-wrap:wrap}.project-card__title,.project-card__actions{width:100%}.project-card__actions{justify-content:flex-start}}@media (min-width:48rem){.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,6vw,6rem)}.hero__copy{grid-area:1/1}.hero__image-container{grid-area:1/2;width:clamp(18rem,44.44vw - 5.33rem,28rem)}.hero__software{font-size:clamp(4rem,7vw,6.5rem)}.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;display:inline-flex}.header__nav-link-label{z-index:1;position:relative}.header__nav-link:hover{color:var(--text-color)}.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;display:inline-flex}.header__contact-button:hover{background:var(--accent-hover-color)}.header__menu-button,.header__dropdown{display:none}.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--top-left{top:38%;left:18%}.planet--contact{top:60%;left:75%}.planet--lower-title{top:90%;left:30%}}@media (min-width:62.5rem){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
