.life-goats-button{cursor:pointer;background:linear-gradient(to left, var(--spiral-nebula-color-cyan-500), var(--spiral-nebula-color-purple-300));border-radius:.5rem;display:block;box-shadow:0 .625rem .9375rem -.1875rem #0000001a,0 .25rem .375rem -.25rem #0000001a}@media (min-width:1024px){.life-goats-button{border-radius:.5rem 0 0 .5rem}}.life-goats-button--floating{z-index:40;display:none;position:fixed;top:6rem;right:0}@media (min-width:1024px){.life-goats-button--floating{display:block}}.life-goats-button--inline{width:auto;position:static}.life-goats-button__inner{background:var(--spiral-nebula-color-background-1);border-radius:.5rem;margin:.25rem;padding:.5rem 1rem}@media (min-width:1024px){.life-goats-button__inner{border-radius:.5rem 0 0 .5rem}}.life-goats-button__label{color:var(--spiral-nebula-color-primary);white-space:nowrap;font-size:.875rem;font-weight:700}
.modal__close-icon{color:var(--spiral-nebula-color-tertiary);transition:color .15s ease-in-out}.modal__close-icon:hover{color:var(--spiral-nebula-color-secondary)}.modal__close-icon--bars{width:1.75rem;height:1.75rem;display:block;position:relative}.modal__close-bar{background:currentColor;border-radius:9999px;width:100%;height:.25rem;margin-top:-.125rem;position:absolute;top:50%;left:0}.modal__close-bar:first-child{transform:rotate(45deg)}.modal__close-bar:nth-child(2){transform:rotate(-45deg)}
.life-goats-sidebar__overlay{z-index:40;background:#00000080;position:fixed;inset:0}.life-goats-sidebar__container{z-index:50;justify-content:flex-end;width:100%;height:100%;display:flex;position:fixed;top:0;right:0}.life-goats-sidebar__desktop{align-items:stretch;height:100%;padding-right:0;display:none}@media (min-width:1024px){.life-goats-sidebar__desktop{display:flex}}.life-goats-sidebar__desktop-inner{align-items:stretch;height:100%;display:flex;position:relative}.life-goats-sidebar__desktop-track{align-items:stretch;height:100%;display:flex}.life-goats-sidebar__border{background-image:linear-gradient(var(--spiral-nebula-color-primary), var(--spiral-nebula-color-secondary));border-radius:1rem 0 0 1rem;align-items:stretch;width:25.625rem;height:100%;padding:.125rem;display:flex}.life-goats-sidebar__panel{background:var(--spiral-nebula-color-background-1);border-radius:1rem 0 0 1rem;flex-direction:column;width:100%;height:100%;padding:1.5rem;display:flex;overflow-y:auto;box-shadow:0 1.5625rem 3.125rem -.75rem #00000040}.life-goats-sidebar__mobile{width:100%;height:100%;display:flex}@media (min-width:1024px){.life-goats-sidebar__mobile{display:none}}.life-goats-sidebar__mobile-panel{background:var(--spiral-nebula-color-background-1);flex-direction:column;width:100%;height:100%;padding:1.5rem;display:flex;overflow-y:auto;box-shadow:0 1.5625rem 3.125rem -.75rem #00000040}.life-goats-sidebar__close{padding:.5rem;line-height:1;display:flex;position:absolute;top:1rem;right:1rem}.life-goats-sidebar__content{margin-top:2rem}.life-goats-sidebar__title{color:var(--spiral-nebula-color-primary);cursor:pointer;margin-bottom:1.5rem;font-size:1.5rem;font-weight:700;transition:color .15s ease-in-out}.life-goats-sidebar__title:hover{color:var(--spiral-nebula-color-cyan-500)}.life-goats-sidebar__slideshow{border-radius:.5rem;width:100%;height:12rem;margin-bottom:.5rem;position:relative;overflow:hidden}.life-goats-sidebar__slide{object-fit:cover;width:100%;height:100%}.life-goats-sidebar__dots{justify-content:center;align-items:center;margin-top:.25rem;margin-bottom:1.25rem;display:flex}.life-goats-sidebar__dot{border-radius:9999px;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;display:flex}.life-goats-sidebar__dot:before{content:"";background:var(--spiral-nebula-color-purple-300);border-radius:9999px;width:.5rem;height:.5rem;transition:all .3s ease-in-out}.life-goats-sidebar__dot:hover:before{background:var(--spiral-nebula-color-purple-400)}.life-goats-sidebar__dot--active:before,.life-goats-sidebar__dot--active:hover:before{background:var(--spiral-nebula-color-cyan-400);box-shadow:0 .625rem .9375rem -.1875rem #0000001a,0 .25rem .375rem -.25rem #0000001a}.life-goats-sidebar__description{color:var(--spiral-nebula-color-secondary);flex-direction:column;gap:1rem;line-height:1.625;display:flex}.life-goats-sidebar__link{color:var(--spiral-nebula-color-primary);font-weight:700;text-decoration:underline;transition:color .15s ease-in-out}.life-goats-sidebar__link:hover{color:var(--spiral-nebula-color-cyan-500)}.life-goats-sidebar__cta{text-align:center;background:linear-gradient(to right, var(--spiral-nebula-color-cyan-500), var(--spiral-nebula-color-purple-300));color:var(--spiral-nebula-color-purple-950);border-radius:.5rem;margin-top:1.5rem;padding:.75rem 1.5rem;font-weight:700;transition:all .3s ease-in-out;display:block}.life-goats-sidebar__cta:hover{box-shadow:0 .625rem .9375rem -.1875rem #0000001a,0 .25rem .375rem -.25rem #0000001a}
.navbar{z-index:50;background:var(--spiral-nebula-color-background-1);width:100%;position:fixed;top:0;box-shadow:0 1.25rem 1.5625rem -.3125rem #0000001a,0 .5rem .625rem -.375rem #0000001a}.navbar__row{width:100%;margin-inline:auto;padding-block:.375rem;display:flex}@media (min-width:1024px){.navbar__row{padding-block:.5rem}}.navbar__brand{margin-left:1.25rem;margin-right:auto}.navbar__brand-link{align-items:center;gap:.5rem;display:flex}.navbar__logo{width:4rem;height:auto}@media (min-width:1024px){.navbar__logo{width:4.375rem}}.navbar__brand-text{color:var(--spiral-nebula-color-primary);cursor:pointer;font-size:1.125rem;font-weight:700;display:none}@media (min-width:1024px){.navbar__brand-text{display:block}}.navbar__brand-divider{color:var(--spiral-nebula-color-secondary);margin-block:.5rem}.navbar__actions{align-items:center;gap:2.5rem;margin-left:auto;margin-right:1.25rem;display:flex}.navbar__links{flex-direction:row;gap:2.5rem;list-style:none;display:none}@media (min-width:1024px){.navbar__links{display:flex}}.navbar__link{color:var(--spiral-nebula-color-secondary);font-size:1.125rem;font-weight:700;text-decoration:none;transition:color .15s ease-in-out}.navbar__link:hover{color:var(--spiral-nebula-color-primary)}.navbar__link--active{color:var(--spiral-nebula-color-primary);text-decoration:underline}.navbar__theme-toggle{cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex}.navbar__theme-toggle--desktop{display:none}@media (min-width:1024px){.navbar__theme-toggle--desktop{display:flex}}.navbar__theme-toggle-track{background:#ffffff26;border-radius:9999px;align-items:center;width:2.75rem;height:1.5rem;padding:.125rem;transition:background-color .15s ease-in-out;display:flex;position:relative}[data-theme=light] .navbar__theme-toggle-track{background:color-mix(in srgb, var(--spiral-nebula-color-secondary) 35%, white)}.navbar__theme-toggle:hover .navbar__theme-toggle-track{background:#ffffff40}[data-theme=light] .navbar__theme-toggle:hover .navbar__theme-toggle-track{background:color-mix(in srgb, var(--spiral-nebula-color-secondary) 50%, white)}.navbar__theme-toggle-thumb{background:var(--spiral-nebula-color-secondary);width:1.25rem;height:1.25rem;color:var(--spiral-nebula-color-background-1);border-radius:9999px;justify-content:center;align-items:center;transition:transform .2s ease-in-out;display:flex;transform:translate(0)}.navbar__theme-toggle-thumb--light{transform:translate(1.25rem)}.navbar__theme-icon{width:.75rem;height:.75rem}.navbar__mobile-theme-toggle{justify-content:center;width:100%;display:flex}.navbar__mobile-trigger{flex:1;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}@media (min-width:1024px){.navbar__mobile-trigger{display:none}}.navbar__mobile-toggle{z-index:calc(50 + 1);width:2.5rem;height:2.5rem;color:var(--spiral-nebula-color-secondary);flex-direction:column;justify-content:center;gap:.375rem;padding:.375rem .25rem;transition:color .15s ease-in-out;display:flex;position:relative}.navbar__mobile-toggle:hover{color:var(--spiral-nebula-color-primary)}.navbar__mobile-toggle--open,.navbar__mobile-toggle--open:hover{color:var(--spiral-nebula-color-white)}.navbar__mobile-bar{transform-origin:50%;background:currentColor;border-radius:9999px;width:100%;height:.25rem;transition:transform .3s ease-in-out,opacity .2s ease-in-out;display:block}.navbar__mobile-toggle--open .navbar__mobile-bar:first-child{transform:translateY(.625rem)rotate(45deg)}.navbar__mobile-toggle--open .navbar__mobile-bar:nth-child(2){opacity:0;transform:scaleX(0)}.navbar__mobile-toggle--open .navbar__mobile-bar:nth-child(3){transform:translateY(-.625rem)rotate(-45deg)}.navbar__mobile-menu{z-index:50;overscroll-behavior:contain;background:linear-gradient(to bottom, var(--spiral-nebula-color-cyan-800), var(--spiral-nebula-color-purple-800));flex-direction:column;justify-content:center;align-items:center;width:100%;height:100dvh;display:flex;position:fixed;inset:0}[data-theme=light] .navbar__mobile-menu{background:linear-gradient(to bottom, color-mix(in srgb, var(--spiral-nebula-color-cyan-500) 25%, white), color-mix(in srgb, var(--spiral-nebula-color-purple-700) 25%, white))}.navbar__mobile-inner{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.navbar__mobile-links{flex-direction:column;justify-content:center;align-items:center;gap:2rem;width:100%;list-style:none;display:flex}.navbar__mobile-link{color:var(--spiral-nebula-color-secondary);text-align:center;font-size:1.5rem;font-weight:700;line-height:1.75rem;text-decoration:none;transition:color .15s ease-in-out}.navbar__mobile-link:hover{color:var(--spiral-nebula-color-primary)}.navbar__mobile-link--active{color:var(--spiral-nebula-color-primary);text-decoration:underline}.navbar__mobile-cta{justify-content:center;width:100%;margin-top:0;display:flex}
.hero{background:linear-gradient(to bottom, var(--spiral-nebula-color-background-1), var(--spiral-nebula-color-cyan-900), var(--spiral-nebula-color-background-1));width:100%;height:100vh;margin-inline:auto;position:relative;overflow:hidden}[data-theme=light] .hero{background:linear-gradient(to bottom, var(--spiral-nebula-color-background-1), color-mix(in srgb, var(--spiral-nebula-color-secondary) 45%, white), var(--spiral-nebula-color-background-1))}.hero__content{flex-direction:row;align-items:flex-start;gap:1.25rem;width:100%;max-width:80rem;margin-inline:auto;padding-inline:1.5rem;display:flex;position:absolute;inset:20% 0 0}@media (min-width:540px){.hero__content{padding-inline:4rem}}@media (min-width:768px){.hero__content{top:30%}}.hero__intro{flex-direction:column;justify-content:center;align-items:center;margin-inline:auto;display:flex}.hero__heading{margin-block:.5rem;font-size:3.75rem;font-weight:900;line-height:5rem}@media (min-width:1024px){.hero__heading{font-size:5rem;line-height:6.125rem}}.hero__heading{z-index:40;color:var(--spiral-nebula-color-white);text-shadow:0 2px #0006;position:relative}[data-theme=light] .hero__heading{text-shadow:0 2px #ffffff80}.hero__heading{flex-wrap:wrap;justify-content:center;align-items:center;gap:.25rem;display:flex}@media (min-width:768px){.hero__heading{gap:1rem}}.hero__name{color:var(--spiral-nebula-color-secondary)}[data-theme=light] .hero__name{color:var(--spiral-nebula-color-primary)}.hero__subheading{margin-top:.5rem;font-size:1rem;font-weight:500}@media (min-width:390px){.hero__subheading{font-size:1.25rem}}@media (min-width:540px){.hero__subheading{font-size:1.625rem}}@media (min-width:1024px){.hero__subheading{font-size:1.875rem;line-height:2.5rem}}.hero__subheading{z-index:40;color:var(--spiral-nebula-color-white-100);text-shadow:0 2px #0006;position:relative}[data-theme=light] .hero__subheading{text-shadow:0 2px #ffffff80}.hero__subheading{text-align:center;max-width:28rem}@media (min-width:768px){.hero__subheading{max-width:42rem}}.hero__links{z-index:40;flex-direction:row;justify-content:center;align-items:center;gap:1.25rem;margin-top:1.25rem;display:flex}.hero__link-icon{background-color:var(--spiral-nebula-color-secondary);width:2.5rem;height:2.5rem;-webkit-mask-image:var(--icon-src);mask-image:var(--icon-src);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--icon-src);margin-top:1rem;transition:background-color .15s ease-in-out;display:inline-block;-webkit-mask-position:50%;-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat}[data-theme=light] .hero__link-icon{background-color:var(--spiral-nebula-color-primary)}.hero__link-icon--resume{box-shadow:0 .625rem .9375rem -.1875rem #0000001a,0 .25rem .375rem -.25rem #0000001a}.hero__link:hover .hero__link-icon{background-color:var(--spiral-nebula-color-primary)}[data-theme=light] .hero__link:hover .hero__link-icon{background-color:var(--spiral-nebula-color-secondary)}.hero__starfield{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.hero__starry-sky{object-fit:cover;pointer-events:none;opacity:.4;width:50%;height:100%;position:absolute}.hero__starry-sky--left{z-index:0;left:0}.hero__starry-sky--right{right:0}.hero__shine{filter:blur(5rem);pointer-events:none;mix-blend-mode:screen;border-radius:9999px;width:37.5rem;height:37.5rem;position:absolute;top:calc(50% - 18.75rem);left:calc(50% - 18.75rem)}[data-theme=light] .hero__shine{mix-blend-mode:normal}.hero__shine--left{background:radial-gradient(circle,#83f8f5,#0000 70%)}.hero__shine--right{background:radial-gradient(circle,#ccb2ff,#0000 70%)}.hero__star-slider{z-index:40;justify-content:center;align-items:center;width:100%;display:flex;position:absolute;bottom:5%}.hero__star-track{border:4px solid var(--spiral-nebula-color-secondary);z-index:40;border-radius:1.5rem;justify-content:center;align-items:flex-start;width:2.1875rem;height:4.6875rem;display:flex}.hero__star-icon{object-fit:contain;z-index:50;width:3.75rem;height:3.75rem}
.react-responsive-modal-root{z-index:1000;position:fixed;inset:0}.react-responsive-modal-overlay{z-index:-1;background:#00000080;position:fixed;inset:0}.react-responsive-modal-container{text-align:center;outline:0;height:100%;overflow:hidden auto}.react-responsive-modal-containerCenter:after{content:"";vertical-align:middle;width:0;height:100%;display:inline-block}.react-responsive-modal-modal{text-align:left;vertical-align:middle;background:#fff;max-width:800px;margin:1.2rem;padding:1.2rem;display:inline-block;position:relative;overflow-y:auto;box-shadow:0 12px 15px #00000040}.react-responsive-modal-closeButton{cursor:pointer;background-color:#0000;border:none;padding:0;display:flex;position:absolute;top:14px;right:14px}.react-responsive-modal-overlay,.react-responsive-modal-container,.react-responsive-modal-modal{animation-fill-mode:forwards!important}@keyframes react-responsive-modal-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes react-responsive-modal-overlay-out{0%{opacity:1}to{opacity:0}}@keyframes react-responsive-modal-modal-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes react-responsive-modal-modal-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}
.modal__overlay{background:color-mix(in srgb, var(--spiral-nebula-color-background-2) 80%, transparent)}.modal__panel{background-image:linear-gradient(var(--spiral-nebula-color-primary), var(--spiral-nebula-color-secondary));text-align:center;border-radius:1rem;padding:.125rem;box-shadow:0 .125rem .625rem #0003}.modal__body{background:var(--spiral-nebula-color-background-1);border-radius:1rem}
.about-modal__body{flex-direction:column;justify-content:center;align-items:center;margin-inline:auto;padding:1rem;display:flex}.about-modal__title{color:var(--spiral-nebula-color-white);margin-bottom:1rem;font-size:1.25rem;font-weight:700}@media (min-width:768px){.about-modal__title{font-size:1.5rem}}.about-modal__content{color:var(--spiral-nebula-color-white);margin-bottom:1rem;font-size:.875rem}@media (min-width:768px){.about-modal__content{font-size:1.125rem}}.about-modal__row{padding-inline:1.25rem;flex-direction:column-reverse;justify-content:center;gap:.5rem;width:100%;margin-inline:auto;padding-top:.5rem;display:flex}@media (min-width:768px){.about-modal__row{flex-direction:row;gap:1.5rem;padding-top:2rem}}.about-modal__link{color:var(--spiral-nebula-color-secondary);text-decoration:underline}.about-modal__link:hover{color:var(--spiral-nebula-color-primary)}.about-modal__photo-border{background:linear-gradient(to bottom, var(--spiral-nebula-color-cyan-500), var(--spiral-nebula-color-purple-300));border-radius:1rem;flex-shrink:0;align-self:center;width:auto;height:auto;margin-bottom:1rem;padding:.125rem;box-shadow:0 1.5625rem 3.125rem -.75rem #00000040}@media (min-width:768px){.about-modal__photo-border{margin-bottom:0}}.about-modal__photo-border--solo{margin-inline:auto;margin-bottom:0}.about-modal__figure{flex-direction:column;align-items:center;gap:.75rem;margin:0;display:flex}.about-modal__caption{color:var(--spiral-nebula-color-white);text-align:center;font-size:.875rem;font-style:italic}.about-modal__photo{border-radius:1rem;width:18.75rem;height:auto}
.about{overflow:hidden}.about__section{background:var(--spiral-nebula-color-background-1);background-size:cover;width:100%;height:auto;padding-top:1.25rem;padding-bottom:2.5rem;position:relative;inset:0}.about__container{width:100%;max-width:80rem;margin-inline:auto;padding-inline:1.25rem}.about__eyebrow{color:var(--spiral-nebula-color-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}@media (min-width:540px){.about__eyebrow{font-size:1.125rem}}.about__heading{color:var(--spiral-nebula-color-white);font-size:1.875rem;font-weight:900}@media (min-width:390px){.about__heading{font-size:2.5rem}}@media (min-width:540px){.about__heading{font-size:3.125rem}}@media (min-width:768px){.about__heading{font-size:3.75rem}}.about__content{padding-inline:1.25rem;flex-direction:column;justify-content:center;gap:.5rem;width:100%;margin-inline:auto;padding-top:.5rem;display:flex}@media (min-width:1024px){.about__content{flex-direction:row;gap:2.5rem;width:70%;padding-top:3.5rem}}.about__photo-wrap{margin-inline:auto;padding-top:2.5rem;padding-bottom:2.5rem}@media (min-width:540px){.about__photo-wrap{padding-top:.5rem}}@media (min-width:1024px){.about__photo-wrap{padding-top:0}}.about__photo-border{background:linear-gradient(to bottom, var(--spiral-nebula-color-cyan-500), var(--spiral-nebula-color-purple-300));border-radius:1rem;width:auto;height:auto;padding:.125rem;box-shadow:0 1.5625rem 3.125rem -.75rem #00000040}.about__photo{border-radius:1rem;width:15.625rem;height:auto}@media (min-width:768px){.about__photo{width:21.875rem}}.about__text-wrap{text-align:center;width:100%;margin-inline:auto;display:flex}@media (min-width:1024px){.about__text-wrap{text-align:left;width:70%;margin-left:2.5rem}}.about__text-inner{width:100%;margin-inline:auto;font-size:1.125rem;font-weight:500}@media (min-width:540px){.about__text-inner{font-size:1.25rem}}@media (min-width:1024px){.about__text-inner{font-size:1.5rem}}.about__highlight--primary{color:var(--spiral-nebula-color-primary)}.about__highlight--secondary{color:var(--spiral-nebula-color-secondary)}.about__link{color:var(--spiral-nebula-color-secondary);text-decoration:underline}.about__link:hover{color:var(--spiral-nebula-color-primary)}.about__cta{background:var(--spiral-nebula-color-secondary);width:auto;height:auto;color:var(--spiral-nebula-color-background-1);cursor:pointer;border-radius:.5rem;margin-top:2rem;padding:.5rem;font-size:1.125rem;font-weight:700;text-decoration:none}.about__cta:hover{background:var(--spiral-nebula-color-primary)}
.skills{overflow:hidden}.skills__section{background:var(--spiral-nebula-color-background-1);background-size:cover;width:100%;padding-top:1.25rem;padding-bottom:2.5rem;position:relative;inset:0}.skills__container{width:100%;max-width:80rem;margin-inline:auto;padding-inline:1.25rem}.skills__eyebrow{color:var(--spiral-nebula-color-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}@media (min-width:540px){.skills__eyebrow{font-size:1.125rem}}.skills__heading{color:var(--spiral-nebula-color-white);font-size:1.875rem;font-weight:900}@media (min-width:390px){.skills__heading{font-size:2.5rem}}@media (min-width:540px){.skills__heading{font-size:3.125rem}}@media (min-width:768px){.skills__heading{font-size:3.75rem}}.skills__cloud{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem 1.25rem;max-width:60rem;margin:2.5rem auto;padding-inline:.5rem;display:flex}@media (min-width:768px){.skills__cloud{gap:.75rem 2rem}}.skills__cloud-item{display:flex}.skills__word{border-radius:.5rem;padding:.25rem .375rem;line-height:1.1;transition:transform .2s ease-in-out,color .2s ease-in-out;display:inline-block}.skills__word:hover{color:var(--spiral-nebula-color-white);transform:scale(1.08)}.skills__word--weight-3{font-size:1.875rem;font-weight:800}@media (min-width:768px){.skills__word--weight-3{font-size:2.75rem}}.skills__word--weight-2{font-size:1.3125rem;font-weight:700}@media (min-width:768px){.skills__word--weight-2{font-size:1.75rem}}.skills__word--weight-1{font-size:1rem;font-weight:500}@media (min-width:768px){.skills__word--weight-1{font-size:1.1875rem}}.skills__word--tone-0{color:var(--spiral-nebula-color-primary)}.skills__word--tone-1{color:var(--spiral-nebula-color-secondary)}[data-theme=light] .skills__word--tone-1{color:var(--spiral-nebula-color-tertiary)}.skills__word--tone-2{color:var(--spiral-nebula-color-purple-400)}.skills__word--tone-3{color:var(--spiral-nebula-color-cyan-400)}
.timeline{width:100%;position:relative}.timeline__nav{z-index:40;width:2.5rem;height:2.5rem;color:var(--spiral-nebula-color-secondary);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#ffffff1f;border-radius:9999px;justify-content:center;align-items:center;transition:color .15s ease-in-out,background-color .15s ease-in-out,opacity .15s ease-in-out;display:flex;position:absolute;top:4.75rem}[data-theme=light] .timeline__nav{border:2px solid var(--spiral-nebula-color-secondary)}.timeline__nav--prev{left:1rem}.timeline__nav--next{right:1rem}.timeline__nav:hover{color:var(--spiral-nebula-color-background-1);background:var(--spiral-nebula-color-secondary)}.timeline__nav:focus-visible{outline:2px solid var(--spiral-nebula-color-primary);outline-offset:2px}.timeline__nav:disabled{opacity:.3;cursor:not-allowed}.timeline__nav:disabled:hover{color:var(--spiral-nebula-color-secondary);background:#ffffff1f}.timeline__nav-icon{width:1.25rem;height:1.25rem}.timeline__viewport{width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 2.75rem calc(100% - 2.75rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 2.75rem calc(100% - 2.75rem),#0000)}.timeline__track{scroll-snap-type:x proximity;scrollbar-width:none;cursor:grab;padding-top:1rem;padding-bottom:1.5rem;align-items:flex-start;gap:3rem;padding-inline:calc(50% - 6.5625rem);list-style:none;display:flex;position:relative;overflow-x:auto}.timeline__track::-webkit-scrollbar{display:none}.timeline__track:focus-visible{outline:2px solid var(--spiral-nebula-color-primary);outline-offset:4px}.timeline__track--dragging{cursor:grabbing;scroll-snap-type:none;-webkit-user-select:none;user-select:none}@media (min-width:540px){.timeline__track{padding-inline:calc(50% - 9.375rem)}}@media (min-width:768px){.timeline__track{gap:4rem;padding-inline:calc(50% - 10.625rem)}}.timeline__path-item{z-index:10;pointer-events:none;height:4rem;position:absolute;top:1rem;left:0}.timeline__path-svg{height:100%;display:block;overflow:visible}.timeline__path-bg{fill:none;stroke:color-mix(in srgb, var(--spiral-nebula-color-white) 15%, transparent);stroke-width:2px}.timeline__path-lead{fill:none;stroke-width:2px;stroke-dasharray:6 6}.timeline__path-lead--before{stroke:var(--spiral-nebula-color-secondary)}.timeline__path-lead--after{stroke:color-mix(in srgb, var(--spiral-nebula-color-white) 15%, transparent)}.timeline__path-progress{fill:none;stroke:var(--spiral-nebula-color-secondary);stroke-width:2px;stroke-linecap:round}.timeline__rocket-wrap{will-change:transform;position:absolute;top:0;left:0}.timeline__rocket{width:clamp(2.5rem,4vw,3.5rem);height:auto;transition:transform .2s ease-out;display:block}.timeline__item{--proximity:1;scroll-snap-align:center;flex:none;width:13.125rem}@media (min-width:540px){.timeline__item{width:18.75rem}}@media (min-width:768px){.timeline__item{width:21.25rem}}.timeline__marker{--wave-y:0px;height:4rem;margin-bottom:1rem;position:relative}.timeline__dot{top:calc(50% + var(--wave-y));background:var(--spiral-nebula-color-secondary);width:.75rem;height:.75rem;box-shadow:0 0 calc(var(--proximity)*.875rem) var(--spiral-nebula-color-secondary);transform:translate(-50%, -50%) scale(calc(.7 + var(--proximity) * .5));border-radius:9999px;display:block;position:absolute;left:50%}.timeline__date{color:var(--spiral-nebula-color-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.875rem;font-weight:700;display:block}.timeline__event-title{color:var(--spiral-nebula-color-primary);margin-bottom:.5rem;font-size:1.125rem;font-weight:700}.timeline__event-text{max-height:27.5rem;color:var(--spiral-nebula-color-white);scrollbar-width:thin;scrollbar-color:var(--spiral-nebula-color-secondary) #0000;padding-right:.5rem;font-size:.875rem;line-height:1.375rem;overflow-y:auto}@media (min-width:540px){.timeline__event-text{max-height:19.25rem}}.timeline__event-text--scrollable{-webkit-mask-image:linear-gradient(#000 calc(100% - 3rem),#0000);mask-image:linear-gradient(#000 calc(100% - 3rem),#0000)}.timeline__event-text--at-end{-webkit-mask-image:none;mask-image:none}.timeline__event-text:focus-visible{outline:2px solid var(--spiral-nebula-color-primary);outline-offset:4px;border-radius:.25rem}.timeline__event-link{color:var(--spiral-nebula-color-secondary);text-decoration:underline}.timeline__event-link:hover{color:var(--spiral-nebula-color-primary)}
.journey{overflow:hidden}.journey__section{background:var(--spiral-nebula-color-background-1);background-size:cover;width:100%;padding-top:1.25rem;padding-bottom:6rem;position:relative;inset:0}@media (min-width:540px){.journey__section{padding-bottom:5rem}}.journey__container{margin-inline:auto}.journey__title-row{width:100%;max-width:80rem;margin-inline:auto;padding-inline:1.25rem}.journey__eyebrow{color:var(--spiral-nebula-color-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}@media (min-width:540px){.journey__eyebrow{font-size:1.125rem}}.journey__heading{color:var(--spiral-nebula-color-white);font-size:1.875rem;font-weight:900}@media (min-width:390px){.journey__heading{font-size:2.5rem}}@media (min-width:540px){.journey__heading{font-size:3.125rem}}@media (min-width:768px){.journey__heading{font-size:3.75rem}}.journey__content{margin-inline:auto;flex-wrap:wrap;justify-content:center;width:90%;margin-top:2.5rem;display:flex}@media (min-width:768px){.journey__content{width:100%}}@media (min-width:540px){.journey__content{margin-top:0}}.journey__timeline-wrap{width:100%;padding-block:1.5rem}
.project-card{cursor:pointer;background:linear-gradient(to bottom, var(--spiral-nebula-color-cyan-500), var(--spiral-nebula-color-purple-300));border-radius:1rem;width:100%;padding:.125rem;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out;box-shadow:0 1.25rem 2.5rem -.625rem #211e35}.project-card:hover,.project-card:focus-visible{transform:translateY(-.375rem);box-shadow:0 1.5625rem 3.125rem -.75rem #00000040}.project-card:focus-visible{outline:2px solid var(--spiral-nebula-color-secondary);outline-offset:4px}.project-card__inner{background:var(--spiral-nebula-color-background-1);border-radius:1rem;flex-direction:column;height:100%;display:flex;overflow:hidden}.project-card__image-wrap{aspect-ratio:16/10;width:100%;overflow:hidden}.project-card__image{object-fit:cover;width:100%;height:100%;transition:transform .3s ease-in-out}.project-card:hover .project-card__image,.project-card:focus-visible .project-card__image{transform:scale(1.06)}.project-card__body{text-align:left;flex-direction:column;flex:auto;align-items:flex-start;gap:.5rem;padding:1.25rem;display:flex}.project-card__name{color:var(--spiral-nebula-color-primary);font-size:1.25rem;font-weight:700;line-height:1.625rem}.project-card__date{color:var(--spiral-nebula-color-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.project-card__teaser{color:var(--spiral-nebula-color-white-100);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.875rem;line-height:1.375rem;display:-webkit-box;overflow:hidden}.project-card__cta{color:var(--spiral-nebula-color-secondary);margin-top:auto;padding-top:.5rem;font-size:.875rem;font-weight:700;transition:color .15s ease-in-out}.project-card:hover .project-card__cta,.project-card:focus-visible .project-card__cta{color:var(--spiral-nebula-color-primary)}
.project-modal{text-align:left;flex-direction:column;gap:1rem;padding:3rem 1.25rem 1.25rem;display:flex}.project-modal__image-border{background:linear-gradient(to bottom, var(--spiral-nebula-color-cyan-500), var(--spiral-nebula-color-purple-300));border-radius:1rem;align-self:center;padding:.125rem;box-shadow:0 1.5625rem 3.125rem -.75rem #00000040}.project-modal__image{border-radius:1rem;width:100%;max-width:31.25rem;height:auto;display:block}.project-modal__name{color:var(--spiral-nebula-color-white);text-align:center;font-size:1.5rem;font-weight:700}.project-modal__date{color:var(--spiral-nebula-color-secondary);text-align:center;text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}.project-modal__summary{color:var(--spiral-nebula-color-white);font-size:1rem;line-height:1.625rem}.project-modal__section{flex-direction:column;gap:.25rem;display:flex}.project-modal__section-title{color:var(--spiral-nebula-color-white);font-size:1rem;font-weight:700}.project-modal__list{color:var(--spiral-nebula-color-white);flex-direction:column;gap:.25rem;padding:0;font-size:.875rem;line-height:1.375rem;list-style:none;display:flex}.project-modal__list--inline{flex-flow:wrap;gap:.25rem .75rem}.project-modal__status{color:var(--spiral-nebula-color-white);font-size:.875rem}.project-modal__links{flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:.5rem;display:flex}.project-modal__text-link{color:var(--spiral-nebula-color-secondary);text-decoration:underline}.project-modal__text-link:hover{color:var(--spiral-nebula-color-primary)}.project-modal__link{color:var(--spiral-nebula-color-secondary);font-weight:700;text-decoration:underline}.project-modal__link--private{cursor:default;text-decoration:none}.project-modal__link--private:hover{color:var(--spiral-nebula-color-secondary)}.project-modal__link:hover{color:var(--spiral-nebula-color-primary)}
.projects{overflow:hidden}.projects__section{background:var(--spiral-nebula-color-background-1);background-size:cover;width:100%;padding-top:2.5rem;padding-bottom:7.5rem;position:relative;inset:0}.projects__container{width:100%;max-width:80rem;margin-inline:auto;padding-inline:1.25rem}.projects__eyebrow{color:var(--spiral-nebula-color-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}@media (min-width:540px){.projects__eyebrow{font-size:1.125rem}}.projects__heading{color:var(--spiral-nebula-color-white);font-size:1.875rem;font-weight:900}@media (min-width:390px){.projects__heading{font-size:2.5rem}}@media (min-width:540px){.projects__heading{font-size:3.125rem}}@media (min-width:768px){.projects__heading{font-size:3.75rem}}.projects__grid-wrap{text-align:center;flex-wrap:wrap;justify-content:center;margin-inline:auto;padding-inline:1.25rem;display:flex}.projects__grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:2rem;width:100%;margin-top:2.5rem;display:grid}@media (min-width:540px){.projects__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.projects__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.projects__grid-item{display:flex}
.parallax{background:linear-gradient(to bottom, var(--spiral-nebula-color-background-1), var(--spiral-nebula-color-orange-700));background-size:cover;height:100vh;min-height:100vh;padding-block:2.5rem;position:relative;inset:0;overflow:hidden}[data-theme=light] .parallax{background:linear-gradient(to bottom, var(--spiral-nebula-color-background-1), color-mix(in srgb, var(--spiral-nebula-color-orange-700) 55%, white) 65%, color-mix(in srgb, var(--spiral-nebula-color-orange-700) 35%, white))}.parallax__intro-wrap{text-align:center;margin-bottom:.5rem;flex-direction:column;justify-content:center;width:100%;margin-inline:auto;display:flex}@media (min-width:540px){.parallax__intro-wrap{max-width:80%}}@media (min-width:768px){.parallax__intro-wrap{max-width:70%}}@media (min-width:1024px){.parallax__intro-wrap{max-width:50%}}@media (min-width:1280px){.parallax__intro-wrap{max-width:40%}}.parallax__intro{text-align:center;color:var(--spiral-nebula-color-white);margin-inline:auto;flex-direction:column;justify-content:center;max-width:90%;margin-top:10%;margin-bottom:.25rem;padding-inline:1.5rem;font-size:1.125rem;line-height:1.875rem;display:flex;overflow:hidden}@media (min-width:540px){.parallax__intro{max-width:70%}}@media (min-width:768px){.parallax__intro{padding-inline:4rem}}@media (min-width:1024px){.parallax__intro{max-width:85%;font-size:1.5rem}}@media (min-width:1280px){.parallax__intro{max-width:100%}}.parallax__starfield{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0}.parallax__starry-sky{object-fit:cover;pointer-events:none;z-index:0;opacity:.4;width:50%;height:100%;position:absolute;bottom:0}.parallax__starry-sky--left{left:0}.parallax__starry-sky--right{right:0}.parallax__mountain{object-fit:cover;z-index:40;width:100%;height:auto;position:absolute;bottom:0;left:0;right:0}.parallax__planets{grid-template-columns:repeat(2,minmax(0,1fr));display:grid;position:absolute;top:58%;left:0;right:0}@media (min-width:768px){.parallax__planets{position:static}}.parallax__planet-slot{align-items:center;display:flex}.parallax__planet-slot--left{justify-content:flex-start;margin-left:5%}@media (min-width:768px){.parallax__planet-slot--left{margin-left:20%}}@media (min-width:1024px){.parallax__planet-slot--left{margin-left:40%}}.parallax__planet-slot--right{justify-content:flex-end;margin-right:18%}@media (min-width:768px){.parallax__planet-slot--right{margin-right:30%}}@media (min-width:1024px){.parallax__planet-slot--right{margin-right:50%}}.parallax__planet{object-fit:contain;z-index:10;position:absolute}.parallax__planet--1{width:6.25rem;height:7.5rem}@media (min-width:768px){.parallax__planet--1{width:9.375rem;height:9.375rem}}@media (min-width:1024px){.parallax__planet--1{width:10.625rem;height:10.625rem}}@media (min-width:1280px){.parallax__planet--1{width:11.25rem}}.parallax__planet--2{width:2.5rem;height:3.4375rem}@media (min-width:768px){.parallax__planet--2{width:4.375rem;height:4.375rem}}@media (min-width:1024px){.parallax__planet--2{width:4.6875rem;height:4.6875rem}}@media (min-width:1280px){.parallax__planet--2{width:5rem;height:5rem}}
.contact{overflow:hidden}.contact__section{background:linear-gradient(to bottom, var(--spiral-nebula-color-orange-700), var(--spiral-nebula-color-purple-800));background-size:cover;width:100%;padding-top:3.5rem;padding-bottom:2.5rem;position:relative;inset:0}[data-theme=light] .contact__section{background:linear-gradient(to bottom, color-mix(in srgb, var(--spiral-nebula-color-orange-700) 35%, white), color-mix(in srgb, var(--spiral-nebula-color-purple-800) 35%, white))}.contact__container{width:100%;max-width:80rem;margin-inline:auto;padding-inline:1.25rem;position:relative}.contact__title-row{margin-inline:auto}.contact__heading{color:var(--spiral-nebula-color-white);font-size:1.875rem;font-weight:900}@media (min-width:390px){.contact__heading{font-size:2.5rem}}@media (min-width:540px){.contact__heading{font-size:3.125rem}}@media (min-width:768px){.contact__heading{font-size:3.75rem}}.contact__grid{margin-top:2rem;flex-direction:column;gap:2rem;width:100%;margin-inline:auto;display:flex;position:relative}@media (min-width:1024px){.contact__grid{width:70%}}.contact__form-column{text-align:left;width:100%;max-width:30rem}.contact__image-column{justify-content:flex-start;margin-bottom:-2.5rem;display:flex}@media (min-width:1024px){.contact__image-column{justify-content:flex-end;margin-bottom:0;position:absolute;bottom:-2.5rem;right:0}}.contact__image{width:12.5rem;height:auto;display:block}@media (min-width:540px){.contact__image{width:15rem}}@media (min-width:1024px){.contact__image{width:17.5rem}}.contact__submit-row{justify-content:flex-end;margin-top:.25rem;margin-bottom:.25rem;display:flex}.contact__submit{background:var(--spiral-nebula-color-secondary);color:var(--spiral-nebula-color-background-1);text-transform:uppercase;border-radius:.5rem;padding:.5rem 1rem;font-size:1.25rem;font-weight:700}.contact__submit:hover{background:var(--spiral-nebula-color-primary)}.contact-input{background:linear-gradient(to bottom, var(--spiral-nebula-color-cyan-500), var(--spiral-nebula-color-purple-300));border-radius:.5rem;align-items:center;margin-bottom:1rem;padding:.125rem;display:flex;box-shadow:0 1.25rem 2.5rem -.625rem #211e35}.contact-input__field{background:var(--spiral-nebula-color-background-1);width:100%;color:var(--spiral-nebula-color-white);border:1px solid #e5e7eb;border-radius:.5rem;padding:.5rem .75rem}.contact-input__field::placeholder{color:color-mix(in srgb, var(--spiral-nebula-color-white) 75%, var(--spiral-nebula-color-background-1));opacity:1}
.privacy-modal__body{flex-direction:column;justify-content:center;align-items:center;margin-inline:auto;padding:1rem;display:flex}.privacy-modal__title{color:var(--spiral-nebula-color-white);margin-bottom:1rem;font-size:1.5rem;font-weight:700}.privacy-modal__text{color:var(--spiral-nebula-color-white);margin-bottom:1rem;font-size:1.125rem}
.accessibility-modal__body{text-align:left;flex-direction:column;max-width:45rem;margin-inline:auto;padding:1.5rem 1.25rem 1.25rem;display:flex}.accessibility-modal__title{color:var(--spiral-nebula-color-white);text-align:center;margin-bottom:1rem;padding-inline:1.5rem;font-size:1.5rem;font-weight:700}.accessibility-modal__heading{color:var(--spiral-nebula-color-primary);margin-top:1rem;margin-bottom:.5rem;font-size:1.125rem;font-weight:700}.accessibility-modal__text{color:var(--spiral-nebula-color-white);margin-bottom:.5rem;font-size:1rem;line-height:1.6}.accessibility-modal__list{color:var(--spiral-nebula-color-white);flex-direction:column;gap:.375rem;margin-bottom:.5rem;padding-left:1.25rem;font-size:1rem;line-height:1.6;list-style:outside;display:flex}.accessibility-modal__list li::marker{color:var(--spiral-nebula-color-secondary)}.accessibility-modal__link{color:var(--spiral-nebula-color-secondary);text-decoration:underline}.accessibility-modal__link:hover{color:var(--spiral-nebula-color-primary)}.accessibility-modal__meta{color:var(--spiral-nebula-color-white);opacity:.85;margin-top:.75rem;font-size:.875rem;font-style:italic}
.footer{background:var(--spiral-nebula-color-background-1);background-position:50%;background-repeat:no-repeat;background-size:contain;flex-direction:column;justify-content:center;align-items:center;width:100%;height:auto;padding-block:2rem;display:flex;position:relative;bottom:0;left:0;right:0;overflow:hidden}.footer__body{flex-direction:column;justify-content:center;align-items:center;gap:.75rem;width:100%;max-width:80rem;margin-inline:auto;padding-inline:1.25rem;display:flex}.footer__row{flex-direction:row;justify-content:center;align-items:center;display:flex}.footer__copyright{font-weight:700}.footer__copyright-mark{color:var(--spiral-nebula-color-secondary);margin-inline:.5rem;font-size:.875rem;font-weight:700}.footer__credit{font-size:.875rem}.footer__legal{flex-direction:row;gap:.5rem;display:flex}.footer__legal-link{font:inherit;color:var(--spiral-nebula-color-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.875rem;text-decoration:none;transition:color .15s ease-in-out}.footer__legal-link:hover{color:var(--spiral-nebula-color-primary)}.footer__legal-link:focus-visible{outline:2px solid var(--spiral-nebula-color-primary);outline-offset:2px;border-radius:.25rem}.footer__legal-divider{color:var(--spiral-nebula-color-secondary);margin-inline:.5rem;font-weight:700}
.app__skip-link{z-index:calc(50 + 1);background:var(--spiral-nebula-color-secondary);color:var(--spiral-nebula-color-background-1);border-radius:.5rem;padding:.5rem 1rem;font-weight:700;position:fixed;top:.5rem;left:.5rem;transform:translateY(-200%)}.app__skip-link:focus-visible{transform:translateY(0)}.app__main:focus{outline:none}.app__hero-wrap{background-position:50%;background-size:cover;overflow-x:hidden}
.astro-pic{overflow:hidden}.astro-pic__section{background:var(--spiral-nebula-color-background-1);background-size:cover;width:100%;padding-top:1.25rem;padding-bottom:6rem;position:relative;inset:0}@media (min-width:540px){.astro-pic__section{padding-bottom:5rem}}.astro-pic__container{width:100%;max-width:80rem;margin-inline:auto;padding-inline:1.25rem}.astro-pic__eyebrow{color:var(--spiral-nebula-color-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}@media (min-width:540px){.astro-pic__eyebrow{font-size:1.125rem}}.astro-pic__heading{color:var(--spiral-nebula-color-white);font-size:1.875rem;font-weight:900}@media (min-width:390px){.astro-pic__heading{font-size:2.5rem}}@media (min-width:540px){.astro-pic__heading{font-size:3.125rem}}@media (min-width:768px){.astro-pic__heading{font-size:3.75rem}}.astro-pic__content{margin-inline:auto;flex-direction:column;justify-content:center;width:90%;margin-top:2.5rem;display:flex}@media (min-width:768px){.astro-pic__content{width:100%}}@media (min-width:540px){.astro-pic__content{margin-top:0}}.astro-pic__result{text-align:center;flex-direction:column;justify-content:center;align-items:center;margin-inline:auto;display:flex}.astro-pic__title{color:var(--spiral-nebula-color-primary);text-align:center;text-transform:uppercase;padding:1.25rem;font-size:1.5rem;font-weight:700}.astro-pic__date{color:var(--spiral-nebula-color-secondary);text-align:center;text-transform:uppercase;letter-spacing:.1em;margin-top:-.75rem;margin-bottom:1rem;font-size:.875rem}.astro-pic__image-row{text-align:center;justify-content:center;width:100%;margin-inline:auto;display:flex}.astro-pic__image-link{width:100%;height:auto}@media (min-width:768px){.astro-pic__image-link{width:60%}}.astro-pic__image{border-radius:.75rem;width:100%;height:auto}.astro-pic__details{width:100%;color:var(--spiral-nebula-color-white);margin-inline:auto;padding:.5rem}@media (min-width:768px){.astro-pic__details{width:60%}}.astro-pic__explanation{padding:1.25rem .5rem .5rem}.astro-pic__meta{padding:.5rem}.astro-pic__meta-label{font-weight:700}.astro-pic__source-link{color:var(--spiral-nebula-color-secondary);cursor:pointer;text-decoration:underline}.astro-pic__source-link:hover{color:var(--spiral-nebula-color-primary)}
