@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800;900&display=swap";@import"https://fonts.cdnfonts.com/css/geist";:root{--border-width: 20px;--border-indent: calc(var(--border-width) * 3.5);--title-indent: 3rem;--navbar-height: 60px;--background-blue: #181743;--accent-gold: #F2D8A7;--accent-gold-hover: #F2C78A;--accent-moon-blue: #8FA8D9;--accent-moon-blue-hover: #A8BDE8;--accent-purple-soft: #B5A6FF;--accent-purple-soft-hover: #C4B8FF;--hero-red: #E85D5E;--white: #FFFFFF;--white-transparent-20: rgba(255, 255, 255, .2);--white-transparent-80: rgba(255, 255, 255, .8);--font-size-hero: 3.5rem;--font-size-large: 2.5rem;--font-size-medium: 1.3rem;--font-size-base: 1rem;--font-size-small: .9rem;--font-size-xsmall: .75rem}html{scroll-behavior:smooth;font-size:clamp(14px,1.2vw,20px);background-color:var(--background-blue)}body{margin:0;background-color:transparent;border:var(--border-width) solid var(--white);border-top:none;min-height:100vh;font-family:Inter;color:var(--white);position:relative;z-index:0}h1{font-size:var(--font-size-hero)}a{color:var(--accent-gold);text-decoration:none}a.button{color:var(--white);text-decoration:none}a:hover{color:var(--accent-gold-hover);transition:color .2s}.border{position:relative;width:100%;height:var(--border-width);background:var(--white);z-index:10}.content-wrapper{margin-top:calc(var(--border-width) * 2);height:100%}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.fade-in{opacity:0;animation:fadeIn .4s ease-out forwards}.fade-in-up{opacity:0;animation:fadeInUp .5s ease-out forwards}.fade-in-delayed{opacity:0;animation:fadeIn .4s ease-out .1s forwards}.fade-in-delayed-2{opacity:0;animation:fadeIn .4s ease-out .2s forwards}.fade-in-delayed-3{opacity:0;animation:fadeIn .4s ease-out .3s forwards}.fade-in-delayed-4{opacity:0;animation:fadeIn .4s ease-out .4s forwards}.hidden-until-scroll{opacity:0;transform:translateY(20px);transition:opacity .4s ease-out,transform .4s ease-out}.hidden-until-scroll.visible{opacity:1;transform:translateY(0)}.Navbar{position:fixed;top:0;left:var(--border-width);right:var(--border-width);height:var(--border-indent);display:flex;justify-content:space-between;background-image:linear-gradient(#00000080,#0000);align-items:flex-end;padding:0 3rem 3rem;z-index:5;font-size:var(--font-size-medium)}.brand{color:var(--white)}.brand .name{color:var(--white);font-weight:800;text-decoration:none}.brand .page{color:var(--white);font-weight:400;text-decoration:none}.brand .page:hover{color:var(--accent-gold-hover);transition:color .2s}.nav-links{display:flex;gap:1rem;justify-content:space-between;font-family:Geist}@media(max-width:768px){.Navbar{font-size:var(--font-size-medium)}}.starfield{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;font-size:clamp(.45rem,1.4vw,1.4rem)}.starfield .star{position:absolute;transform:translate(-50%,-50%) scale(var(--star-scale, 1));will-change:transform,opacity}.starfield .star.cross{width:1em;height:1em}.starfield .star.cross .star-h{position:absolute;width:1em;height:.3em;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:100%;animation:starfield-twinkle-width var(--star-duration, 1s) ease infinite;animation-delay:var(--star-delay, 0s)}.starfield .star.cross .star-v{position:absolute;width:.3em;height:1em;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:100%;animation:starfield-twinkle-height var(--star-duration, 1s) ease infinite;animation-delay:var(--star-delay, 0s)}.starfield .star.cross .star-c{position:absolute;width:.5em;height:.5em;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff;border-radius:50%}.starfield .star.dot{width:.5em;height:.5em;border-radius:50%;animation:starfield-twinkle var(--star-duration, .5s) ease infinite;animation-delay:var(--star-delay, 0s)}.starfield .star.dot.hue-white{background:#fff}.starfield .star.dot.hue-purple{background:linear-gradient(to right,#730f8e,transparent)}.starfield .star.dot.hue-pink{background:linear-gradient(to right,transparent,#c62368)}@keyframes starfield-twinkle-height{0%{height:1em}50%{height:.5em}to{height:1em}}@keyframes starfield-twinkle-width{0%{width:1em}50%{width:.5em}to{width:1em}}@keyframes starfield-twinkle{0%{opacity:0}50%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.starfield .star.cross .star-h,.starfield .star.cross .star-v,.starfield .star.dot{animation:none}}:root{--purple1: #181743;--purple2: #730F8E;--purple-pink: #A21190;--pink: #C62368;--purple-pink1: #CE0682;--fuscia: #C62368;--meteor-yellow: #fedc01}.planet-scene{position:relative;width:min(90vw,800px);aspect-ratio:1.2 / 1;margin:0 auto;overflow:visible;transform:translate(-.15em);font-size:clamp(.45rem,1.8vw,1.8rem)}.planet-container{width:10em;height:10em;padding:1em;border-radius:10em;background:linear-gradient(150deg,var(--fuscia),transparent,transparent);position:absolute;animation:planet-moving 2s ease infinite;transition:all .2s ease;left:42%}.planet-container .planet{width:10em;height:10em;position:absolute;top:1em;left:1em;background:linear-gradient(150deg,var(--fuscia),var(--purple2),transparent);border-radius:5em;z-index:0}.planet-container .shine{position:absolute;top:1em;left:1em;width:10em;height:10em;border-radius:50%;pointer-events:none;z-index:1;background:radial-gradient(circle at 34% 28%,rgba(255,250,255,.32) 0%,rgba(255,220,240,.08) 18%,transparent 36%),radial-gradient(ellipse 85% 72% at 30% 26%,rgba(235,109,180,.22) 0%,rgba(199,30,100,.06) 48%,transparent 68%);opacity:.78}.planet-container .planet-ring{width:15em;height:2em;position:absolute;border-top:1em solid transparent;border-bottom:1em solid var(--fuscia);border-left:1.25em solid var(--fuscia);border-right:1.25em solid var(--fuscia);border-radius:100%;left:-2em;transform:rotate(-30deg);top:4em}.planet-container .planet-ring2{width:15em;height:2em;position:absolute;border-top:1em solid var(--fuscia);border-bottom:1em solid var(--fuscia);border-left:1.25em solid var(--fuscia);border-right:1.25em solid var(--fuscia);border-radius:100%;left:-2em;transform:rotate(-30deg);top:4em;z-index:-1}.moon-wrap{width:5em;height:5em;position:absolute;top:20%;left:10%;animation:planet-moving2 2s ease infinite;animation-delay:.5s;animation-fill-mode:both;will-change:transform}.moon{width:100%;height:100%;position:absolute;top:0;left:0;border-radius:50%;background:linear-gradient(155deg,rgba(220,230,250,.92) 0%,var(--accent-moon-blue) 42%,var(--fuscia) 100%);z-index:0;box-shadow:inset -.2em -.35em .5em #50285a38}.moon-shine{position:absolute;inset:0;border-radius:50%;pointer-events:none;z-index:1;background:radial-gradient(circle at 36% 26%,rgba(255,255,255,.28) 0%,rgba(210,228,255,.1) 20%,transparent 38%),radial-gradient(ellipse 88% 74% at 32% 24%,rgba(143,168,217,.26) 0%,rgba(80,110,160,.05) 52%,transparent 70%);opacity:.72}@keyframes planet-moving{0%{top:30%}50%{top:31%}to{top:30%}}@keyframes planet-moving2{0%{transform:translateY(3rem)}50%{transform:translateY(3.2rem)}to{transform:translateY(3rem)}}.card{display:flex;flex-direction:column;border-radius:5px;position:relative;overflow:hidden;width:100%;height:100%;min-height:420px;background-color:#11102f;box-shadow:0 4px 12px #0000004d,0 2px 4px #0003;box-sizing:border-box;margin:0}.card-image{width:100%;aspect-ratio:16 / 9;overflow:hidden;box-shadow:0 4px 8px #00000026;position:relative}.card-image img{width:100%;height:100%;object-fit:cover;display:block}.card-content{padding:1.25rem;display:flex;flex-direction:column;gap:0;flex-grow:1}.card-title{font-size:var(--font-size-medium);font-weight:600;text-decoration:none;color:var(--white);margin:0;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.15);transition:color .2s;min-height:1.5em;height:1.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-title:hover{color:var(--accent-gold)}.card-description{font-size:var(--font-size-small);color:var(--white-transparent-80);margin:0;margin-bottom:.75rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;height:3em;min-height:3em;max-height:3em;cursor:default;pointer-events:none}.card-tags{display:flex;flex-wrap:nowrap;gap:.5rem;margin-top:auto;overflow:hidden;height:2rem;align-items:center;pointer-events:none}.card-tag{font-size:.7rem;color:#fffffff2;border:none;padding:.3rem .75rem;border-radius:3px;white-space:nowrap;font-weight:600;letter-spacing:.01em;box-shadow:0 2px 4px #0003,0 1px 2px #0000001a}.space-container{width:100%;height:30vh;position:relative;overflow:hidden;margin:3rem 0}.rocket{position:absolute;width:120px;height:120px;top:50%;animation:rocketFlight 36s infinite;z-index:2;opacity:1}@keyframes rocketFlight{0%{left:-180px;top:50%;transform:translateY(-50%) rotate(88deg);animation-timing-function:cubic-bezier(.33,0,.2,1)}34%{left:44%;top:43%;transform:translateY(-50%) rotate(95deg);animation-timing-function:cubic-bezier(.33,0,.2,1)}47%{left:82%;top:53%;transform:translateY(-50%) rotate(85deg);animation-timing-function:cubic-bezier(.33,0,.2,1)}50%{left:calc(100% + 180px);top:49%;transform:translateY(-50%) rotate(91deg);animation-timing-function:linear}50.01%{left:-180px;top:51%;transform:translateY(-50%) rotate(88deg);animation-timing-function:linear}to{left:-180px;top:51%;transform:translateY(-50%) rotate(88deg)}}@media(prefers-reduced-motion:reduce){.rocket{animation:none;left:40%;top:48%;transform:translate(-50%,-50%) rotate(90deg)}.rocket-flame{animation:none;opacity:.92}}.rocket-body{position:relative;width:100%;height:100%;opacity:1}.rocket{--rocket-body-light: #ffc2d7;--rocket-body: #ff7aa2;--rocket-body-dark: #c94b78;--rocket-wing-dark: #8a2f56;--rocket-stripe: #f2d8a7;--rocket-thruster: #3a143a;--rocket-window-light: #d5e8f7;--rocket-window-dark: #7ea6c8;--rocket-flame-top: #ffe27a;--rocket-flame-mid: #ff7a2b;--rocket-flame-bottom: #c9264a}.rocket-main{width:60px;height:90px;background:linear-gradient(150deg,var(--rocket-body),var(--rocket-body-dark));border-radius:50% 50% 10px 10px;position:absolute;left:30px;top:10px}.rocket-nose{width:32px;height:32px;background:linear-gradient(150deg,var(--rocket-body-light) 35%,var(--rocket-body) 100%);border-radius:50%;position:absolute;left:14px;top:-12px}.rocket-window{width:24px;height:24px;background:linear-gradient(150deg,var(--rocket-window-light) 45%,var(--rocket-window-dark) 100%);border-radius:50%;position:absolute;left:18px;top:16px}.rocket-window-highlight{width:9px;height:9px;background:#ffffffd9;border-radius:50%;position:absolute;left:4px;top:4px}.rocket-wing{width:30px;height:46px;background:linear-gradient(150deg,var(--rocket-body-dark),var(--rocket-wing-dark));position:absolute;top:58px;border-radius:10px 0 12px}.rocket-wing.left{left:2px}.rocket-wing.right{right:2px;transform:scaleX(-1)}.rocket-stripe{width:100%;height:6px;background:var(--rocket-stripe);position:absolute;top:44px;left:0}.rocket-booster{width:24px;height:12px;background:linear-gradient(150deg,var(--rocket-wing-dark),var(--rocket-thruster));position:absolute;bottom:0;left:50%;transform:translate(-50%);border-radius:0 0 4px 4px}.rocket-thruster{width:30px;height:16px;background:linear-gradient(180deg,var(--rocket-thruster),#1b0820);position:absolute;bottom:-16px;left:50%;transform:translate(-50%);border-radius:0 0 8px 8px}.rocket-flame{position:absolute;bottom:-26px;left:50%;transform:translate(-50%);animation:flicker .2s infinite alternate;display:flex;justify-content:center}.flame-part{width:22px;height:34px;background:linear-gradient(180deg,var(--rocket-flame-top) 0%,var(--rocket-flame-mid) 55%,var(--rocket-flame-bottom) 100%);border-radius:50%/60% 60% 40% 40%}@keyframes flicker{0%{transform:translate(-50%) scaleY(1);opacity:1}to{transform:translate(-50%) scaleY(.85);opacity:.8}}.intro-section{display:flex;flex-direction:row;align-items:center;margin-top:10vh;overflow:hidden}.intro-content{padding:0 0 0 3rem}.intro-content{width:min(40%,600px);font-size:var(--font-size-large);display:flex;flex-direction:column;justify-content:space-between}.intro-content h1,.intro-content p{margin-top:0;margin-bottom:1rem}.intro-copy{display:flex;flex-direction:column;gap:1.25rem}.wave-gap{height:10vh}.hero-wave-gap{height:10vh;width:100%}@media(max-aspect-ratio:4/3){.wave-gap{height:10rem}}@media(max-aspect-ratio:1/1){.wave-gap{height:16rem}}.intro-content a{color:var(--accent-gold);text-decoration:none}.intro-content a:hover{color:var(--accent-gold-hover);transition:color .2s}.wave{display:block;width:100%;overflow:hidden}.wave img{display:block;margin-bottom:-1px;width:100%}.wave.reverse{margin-top:-3rem}.wave.reverse img{transform:scaleY(-1)}@media(max-width:1440px){.wave img,.wave.reverse img{width:200%;margin-left:-50%}}@media(max-width:768px){.wave img,.wave.reverse img{width:220%;margin-left:-60%}}@media(max-width:480px){.wave img,.wave.reverse img{width:250%;margin-left:-75%}}.hero{height:fit-content;width:100%;background-color:var(--hero-red);padding:3rem 0;margin-bottom:2.5rem;overflow:visible;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:3rem}#about .intro-content{width:min(44%,680px);justify-content:flex-start;gap:1.25rem}#about .intro-content p{margin-bottom:0}.hero h1,.hero p,.hero a{margin-top:0}.socials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));row-gap:.35rem;column-gap:2.5rem;margin-top:.75rem;max-width:520px;align-items:start}.social-link{display:inline-flex;align-items:center;color:var(--accent-gold);text-decoration:none;width:fit-content}.social-link:before{content:"->";margin-right:.5rem;color:var(--white)}.hero-images{display:flex;flex-direction:column;gap:1.5rem;padding-right:3rem;flex-shrink:0;justify-content:center;align-items:center;margin-top:0}.hero-image-box{display:block;width:550px;height:367px;border:4px solid var(--white);border-radius:12px;overflow:hidden;transition:transform .3s ease;flex-shrink:0;box-sizing:border-box}.hero-image-box img{width:100%;height:100%;object-fit:cover;display:block}.projects-section{max-width:1200px;margin:0 auto;padding:var(--border-indent) 3rem var(--border-indent) 3rem}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.project-card{display:flex;flex-direction:column;border:2px solid var(--white);border-radius:12px;background:#00000040;overflow:hidden;box-sizing:border-box;text-decoration:none;color:var(--white);transition:border-color .2s,transform .2s}.project-card:hover{border-color:var(--white);transform:translateY(-4px)}.project-card-image{width:100%;aspect-ratio:16 / 10;overflow:hidden;border-radius:10px 10px 0 0}.project-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project-card:hover .project-card-image img{transform:scale(1.05)}.project-card-content{padding:1.25rem;display:flex;flex-direction:column;gap:.5rem}.project-card-title{font-size:1.4rem;margin:0;color:var(--white);transition:color .2s}.project-card-description{font-size:var(--font-size-base);color:var(--white-transparent-80);margin:0;line-height:1.5}.projects-footer{display:flex;justify-content:flex-end;margin-top:2rem}.view-all-btn{color:var(--white);font-size:1.1rem;font-weight:700;line-height:1.2;letter-spacing:0;text-decoration:none;transition:color .2s}.view-all-btn:hover{color:var(--accent-gold)}@media(max-width:1024px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.intro-section{flex-direction:column;text-align:center;padding:0 2rem}.intro-content{width:100%;padding:0}#planet-container{display:none}.hero{flex-direction:column;padding:2rem 3rem;text-align:center;box-sizing:border-box}.hero .intro-content{text-align:center;padding:0;width:100%}.hero-images{padding:0;padding-bottom:2rem;margin-top:2rem;order:2;width:100%;box-sizing:border-box}.hero-image-box{width:100%;max-width:100%;height:auto}.hero-image-box img{aspect-ratio:550 / 367;height:auto}.socials{display:grid;grid-template-columns:1fr;justify-items:center;gap:1rem;margin-top:2rem;max-width:none}.projects-section{padding:2rem 1.5rem}.projects-grid{grid-template-columns:1fr;gap:1.5rem}.project-card-title{font-size:1.25rem}.projects-footer{justify-content:center}}.blog-index,.blog-post{max-width:760px;margin:0 auto;padding:2rem 1.5rem 5rem}.blog-index h1{margin-bottom:2rem}.blog-empty{color:var(--white-transparent-80)}.blog-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1.25rem}.blog-list-item{border:1px solid rgba(255,255,255,.15);border-radius:6px;background:#00000040;transition:border-color .2s,transform .2s}.blog-list-item:hover{border-color:var(--accent-gold);transform:translateY(-2px)}.blog-list-link{display:block;padding:1.25rem 1.5rem;color:var(--white);text-decoration:none}.blog-list-link:hover{color:var(--white)}.blog-list-date{font-size:var(--font-size-small);color:var(--white-transparent-80);font-variant-numeric:tabular-nums}.blog-list-title{font-size:1.6rem;margin:.25rem 0 .5rem;color:var(--white)}.blog-list-description{font-size:var(--font-size-base);color:var(--white-transparent-80);margin:0;line-height:1.5}.blog-post-header{margin-bottom:2.5rem}.blog-post-header h1{font-size:2.5rem;line-height:1.15;margin:.5rem 0 1rem}.blog-post-meta{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:var(--font-size-small);color:var(--white-transparent-80);margin:0}.blog-post-sep{opacity:.5}.blog-post-lede{font-size:1.15rem;color:var(--white-transparent-80);margin:0}.prose{font-size:1.05rem;line-height:1.7;color:var(--white)}.prose>*+*{margin-top:1.1rem}.prose h2,.prose h3,.prose h4{margin-top:2.25rem;margin-bottom:.75rem;line-height:1.25}.prose h2{font-size:1.75rem}.prose h3{font-size:1.35rem}.prose h4{font-size:1.15rem}.prose a{color:var(--accent-gold);text-decoration:underline;text-decoration-color:#f2d8a766;text-underline-offset:3px}.prose a:hover{color:var(--accent-gold-hover);text-decoration-color:currentColor}.prose code{background:#ffffff14;padding:.15rem .4rem;border-radius:4px;font-size:.9em}.prose pre{padding:1rem 1.25rem;border-radius:6px;overflow-x:auto;border:1px solid rgba(255,255,255,.1)}.prose pre code{background:transparent;padding:0;border-radius:0;font-size:.95em}.prose blockquote{border-left:3px solid var(--accent-gold);padding-left:1rem;margin-left:0;color:var(--white-transparent-80);font-style:italic}.prose ul,.prose ol{padding-left:1.5rem}.prose li+li{margin-top:.35rem}.prose img{max-width:100%;border-radius:6px}.prose hr{border:none;border-top:1px solid rgba(255,255,255,.15);margin:2rem 0}@media(max-width:768px){.blog-index,.blog-post{padding:1.5rem 1rem 4rem}.blog-post-header h1{font-size:2rem}}
