@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap";:root{--navy:#100b38;--deep-navy:#07071b;--blue:#00608a;--cyan:#67e3ff;--pink:#ff57b6;--coral:#ff6b6b;--yellow:#fdca40;--paper:#fffdf8;--pale:#f4f5ff;--ink:#17113e;--text:#fff;--muted-dark:#b9bad0;--line-dark:#ffffff2b;--line-light:#17113e29;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--deep-navy);scroll-padding-top:5.5rem}body{min-width:320px;color:var(--text);background:var(--deep-navy);margin:0;font-family:IBM Plex Sans,sans-serif;overflow-x:hidden}body.menu-open{overflow:hidden}::selection{color:var(--deep-navy);background:var(--cyan)}a{color:inherit}button{font:inherit}:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}.mono,h1,h2,h3{font-family:IBM Plex Mono,monospace}.starfield{z-index:0;pointer-events:none;opacity:.35;width:100%;height:100%;position:fixed;inset:0}.starfield .constellations path{fill:none;stroke:url(#constellation-line);stroke-width:.75px;opacity:.14}.starfield .tiny-stars>circle:not(.glow){fill:#fff}.starfield .glow{fill:url(#star-glow)}.starfield .brand-glyph{display:none}main{z-index:1;position:relative}.cosmic-section{--section-copy:var(--text);--section-muted:var(--muted-dark);--section-line:var(--line-dark);--section-card:#ffffff09;width:100%;min-height:28rem;color:var(--section-copy);background:var(--navy);gap:1.2rem;padding:clamp(5rem,9vw,8rem) max(5vw,50vw - 590px);display:grid;position:relative;overflow:hidden}#highlights,#experience,#about{--section-copy:var(--ink);--section-muted:#595477;--section-line:var(--line-light);--section-card:transparent;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--paper)}#about{background:var(--pale)}#highlights{min-height:auto;padding-top:clamp(3.75rem,6vw,5.5rem);padding-bottom:clamp(3.75rem,6vw,5.5rem)}#highlights h2{letter-spacing:-.04em;max-width:none;font-size:clamp(1.8rem,3.5vw,3rem)}.section-star{opacity:.16;filter:invert(13%)sepia(22%)saturate(2878%)hue-rotate(205deg);pointer-events:none;width:clamp(2.5rem,5vw,4.5rem);position:absolute;top:clamp(3rem,6vw,5rem);right:max(5vw,50vw - 590px)}#projects .section-star,#cv .section-star,#contact .section-star{filter:none;opacity:.18}.eyebrow{z-index:1;color:var(--pink);letter-spacing:.18em;margin:0;font-family:IBM Plex Mono,monospace;font-size:.72rem;font-weight:600}h1,h2,h3,p{margin:0}h1{letter-spacing:-.075em;font-size:clamp(3.2rem,8vw,7.5rem);font-weight:500;line-height:.92}h2{z-index:1;letter-spacing:-.055em;max-width:18ch;font-size:clamp(2.2rem,5vw,4.7rem);font-weight:500;line-height:1}h3{font-size:1rem;line-height:1.3}p{line-height:1.65}.lead,.section-lead,.summary,.role,.org{color:var(--section-muted)}.section-lead{z-index:1;max-width:64ch;margin:.4rem 0 1.5rem;font-size:1rem}.top-nav{z-index:50;pointer-events:none;height:5rem;position:fixed;inset:0}.nav-shell{pointer-events:auto;align-items:center;gap:clamp(2rem,5vw,6rem);width:min(1400px,90vw);height:100%;margin:0 auto;display:flex}.top-nav:before{z-index:-1;content:"";pointer-events:none;background:linear-gradient(#05061cc7,#0000);position:absolute;inset:0}.brand{flex:none;align-items:center;gap:.55rem;font-size:.78rem;text-decoration:none;display:inline-flex}.brand b{color:var(--cyan);font-weight:600}.brand-star{aspect-ratio:1;object-fit:contain;border:1px solid #67e3ff8c;border-radius:50%;width:2rem;height:2rem;padding:.3rem}.nav-panel{flex:1;align-items:center;gap:2rem;display:flex}.nav-panel nav{flex:1;justify-content:space-around;align-items:center;display:flex}.top-nav .link,.github{color:#ffffffd1;padding:.45rem 0;font-family:IBM Plex Mono,monospace;font-size:.7rem;text-decoration:none}.top-nav .link:hover,.github:hover{color:var(--cyan)}.top-actions,.locale-toggle{align-items:center;display:flex}.top-actions{gap:.8rem}.locale-toggle{border:1px solid #ffffff47;border-radius:.4rem;overflow:hidden}.locale-toggle button{color:#ffffffb8;cursor:pointer;background:0 0;border:0;padding:.42rem .55rem;font-family:IBM Plex Mono,monospace;font-size:.62rem}.locale-toggle button.active{color:var(--deep-navy);background:var(--cyan)}.menu-toggle,.nav-scrim{display:none}#home{text-align:center;background:linear-gradient(#04051b3d,#0a062a33 55%,#07071bd1),radial-gradient(circle,#0000 15%,#02041561 100%),url(/assets/space/portfolio-galaxy.webp) 50%/cover no-repeat;align-content:center;place-items:center;min-height:100svh;padding-top:8rem;padding-bottom:9rem}#home:before{content:"";pointer-events:none;background:radial-gradient(circle at 50% 45%,#67e3ff14,#0000 28rem);position:absolute;inset:0}.hero-content{z-index:3;flex-direction:column;align-items:center;gap:1rem;width:min(100%,1000px);display:flex;position:relative}.kicker{color:var(--cyan);letter-spacing:.2em;text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:.76rem}.kicker span{color:var(--pink)}.hero-title{color:#fff;max-width:56ch;font-family:IBM Plex Mono,monospace;font-size:clamp(1rem,1.8vw,1.35rem);line-height:1.45}.hero-content .lead{color:#ffffffad;max-width:58ch;font-size:.95rem}.hero-actions,.cv-actions{z-index:2;flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:.6rem;display:flex;position:relative}.btn{border:1px solid #0000;border-radius:.35rem;justify-content:center;align-items:center;min-height:2.7rem;padding:.65rem 1rem;font-family:IBM Plex Mono,monospace;font-size:.72rem;font-weight:600;text-decoration:none;transition:color .18s,background .18s,transform .18s;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn.primary{color:var(--deep-navy);background:var(--cyan)}.btn.primary:hover{background:#fff}.btn.secondary{color:#fff;background:0 0;border-color:#ffffff8c}.btn.secondary:hover{color:var(--deep-navy);background:#fff}.hero-star{z-index:2;opacity:.65;width:clamp(2.2rem,4.5vw,4.8rem);animation:6s ease-in-out infinite float;position:absolute}.hero-star-one{top:25%;left:11%}.hero-star-two{width:clamp(1.6rem,3vw,3.2rem);animation-delay:-3s;top:18%;right:13%}.scroll-cue{z-index:4;color:#ffffffb8;letter-spacing:.15em;text-transform:uppercase;flex-direction:column;gap:.25rem;font-size:.62rem;text-decoration:none;display:flex;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.scroll-cue span:last-child{color:var(--cyan)}@keyframes float{50%{transform:translateY(-.8rem)rotate(5deg)}}.cert-strip{z-index:1;border-top:1px solid var(--section-line);border-bottom:1px solid var(--section-line);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:.75rem;display:grid}.cert-strip>span{border-right:1px solid var(--section-line);min-height:8rem;color:var(--section-muted);align-items:center;gap:.9rem;padding:1.4rem;font-size:.78rem;line-height:1.45;display:flex}.cert-strip>span:nth-child(3n){border-right:0}.cert-strip svg{width:2rem;height:2rem;color:var(--pink);flex:none}.cert-copy{gap:.3rem;display:grid}.cert-date{color:var(--pink);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;font-weight:600}.cert-strip>span:nth-child(3n+2) svg{color:var(--blue)}.cert-strip>span:nth-child(3n) svg{color:#d79e00}#projects{background:radial-gradient(circle at 88% 16%, #ff57b61f, transparent 25rem), var(--navy)}@media (width>=1001px){#projects{padding-left:max(4vw,50vw - 630px);padding-right:max(4vw,50vw - 630px)}}.project-grid{z-index:1;border-top:1px solid var(--section-line);border-left:1px solid var(--section-line);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1rem;display:grid}.project-grid.full{margin-top:1.2rem}.project-card{border-right:1px solid var(--section-line);border-bottom:1px solid var(--section-line);background:0 0;align-content:start;gap:.85rem;min-height:100%;padding:1.5rem;transition:background .18s;display:grid;position:relative}.project-card.compact{gap:.95rem}.project-card:hover{background:#ffffff0b}.project-card:before{background:var(--card-accent);content:"";height:2px;position:absolute;inset:0 0 auto}.project-index{color:var(--card-accent);letter-spacing:.08em;gap:.45rem;font-size:.58rem;display:flex}.project-header{gap:.25rem;display:grid}.role,.summary,.experience-item .top-row p{font-size:.75rem;line-height:1.55}.project-card ul,.experience-item ul,.education-card ul,.skills-grid ul,.cv-grid ul{color:var(--section-muted);gap:.4rem;margin:0;padding-left:1.1rem;font-size:.76rem;line-height:1.5;display:grid}.project-card .role,.project-card .summary,.project-card ul{font-size:.83rem;line-height:1.55}.experience-item .top-row p,.experience-item ul,.education-card ul,.cv-grid ul{font-size:.81rem;line-height:1.55}.project-card li::marker{color:var(--pink)}.experience-item li::marker{color:var(--pink)}.education-card li::marker{color:var(--pink)}.chips,.stack,.links{flex-wrap:wrap;gap:.4rem;display:flex}.chips span,.stack small{border:1px solid var(--section-line);color:var(--section-muted);border-radius:.25rem;padding:.18rem .4rem;font-family:IBM Plex Mono,monospace;font-size:.58rem}.links{align-self:end;margin-top:auto;padding-top:.4rem}.links a{color:var(--card-accent,var(--cyan));text-underline-offset:.22rem;font-family:IBM Plex Mono,monospace;font-size:.7rem}.all-projects{z-index:1;margin-top:1rem}.all-projects summary{width:fit-content;color:var(--cyan);cursor:pointer;padding:.6rem 0;font-family:IBM Plex Mono,monospace;font-size:.72rem}.all-projects summary::marker{color:var(--pink)}.timeline-grid{z-index:1;border-top:1px solid var(--section-line);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:2rem;display:grid}.timeline-left,.timeline-right{border-right:1px solid var(--section-line);border-bottom:1px solid var(--section-line)}.timeline-grid>div:nth-child(2n){border-right:0}.experience-item,.education-card{align-content:start;gap:.7rem;min-height:100%;padding:1.6rem;display:grid}.experience-item .top-row{gap:.35rem;display:grid}.skills-grid{z-index:1;border-top:1px solid var(--section-line);grid-template-columns:repeat(4,minmax(0,1fr));margin-top:1.5rem;display:grid}.skills-grid article{border-right:1px solid var(--section-line);padding:1.6rem 1.3rem}.skills-grid article:last-child{border-right:0}.skills-grid h3,.cv-grid h3{color:var(--pink);margin-bottom:.8rem}.skills-grid li::marker{color:var(--blue)}.cv-grid li::marker{color:var(--blue)}#cv{background:radial-gradient(circle at 10% 100%, #67e3ff1a, transparent 26rem), var(--navy);min-height:auto;padding-top:clamp(4.5rem,7vw,6.5rem);padding-bottom:clamp(4.5rem,7vw,6.5rem)}#cv .cv-actions{justify-content:flex-start}.cv-grid{z-index:1;border-top:1px solid var(--section-line);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1rem;display:grid}.cv-grid article{border-right:1px solid var(--section-line);padding:1.5rem 1.2rem}.cv-grid article:last-child{border-right:0}#contact{text-align:center;background:linear-gradient(#100b3894, #100b3894), linear-gradient(110deg, var(--pink), var(--coral) 55%, var(--yellow));place-content:center;min-height:34rem}#contact .eyebrow,#contact h2,#contact .section-lead{color:#fff;margin-left:auto;margin-right:auto}#contact .section-lead{max-width:55ch}#contact .btn.primary{color:var(--ink);background:#fff}#contact .btn.secondary{border-color:#fff}footer{z-index:1;color:#ffffff9e;background:var(--deep-navy);justify-content:space-between;align-items:center;padding:1.4rem max(5vw,50vw - 590px);font-family:IBM Plex Mono,monospace;font-size:.65rem;display:flex;position:relative}footer a{color:var(--cyan)}@media (width<=1000px){.project-grid,.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.skills-grid article:nth-child(2){border-right:0}.skills-grid article:nth-child(-n+2){border-bottom:1px solid var(--section-line)}}@media (width<=820px){.top-nav{background:#100b38f5;height:4.6rem}.nav-shell{justify-content:space-between;width:90vw;position:relative}.menu-toggle{z-index:3;cursor:pointer;background:0 0;border:1px solid #ffffff4d;gap:.27rem;width:2.8rem;height:2.8rem;padding:.75rem .65rem;display:grid;position:relative}.menu-toggle span{background:#fff;height:1px;transition:transform .18s,opacity .18s}.menu-toggle.open span:first-child{transform:translateY(.34rem)rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:last-child{transform:translateY(-.34rem)rotate(-45deg)}.nav-panel{z-index:2;background:radial-gradient(circle at 90% 0%, #ff57b62e, transparent 20rem), var(--navy);opacity:0;pointer-events:none;max-height:0;padding:0 7vw;transition:max-height .22s,padding .22s,opacity .16s;display:grid;position:absolute;top:100%;left:-5vw;right:-5vw;overflow:hidden}.nav-panel.open{opacity:1;pointer-events:auto;max-height:32rem;padding-top:1.2rem;padding-bottom:1.5rem}.nav-panel nav{display:grid}.top-nav .link{border-bottom:1px solid #ffffff1f;justify-content:space-between;padding:.8rem 0;font-size:.76rem;display:flex}.top-actions{justify-content:space-between;padding-top:1rem}.nav-scrim{z-index:45;background:#07071bb8;border:0;width:100%;display:block;position:fixed;inset:0}#home{background-position:58%;padding-top:7rem}.cert-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.cert-strip>span:nth-child(3n){border-right:1px solid var(--section-line)}.cert-strip>span:nth-child(2n){border-right:0}}@media (width<=620px){.cosmic-section{min-height:auto;padding:4.5rem 6vw}#home{min-height:100svh;padding-top:6.5rem;padding-bottom:8rem}h1{font-size:clamp(3.3rem,17vw,5rem)}h2{padding-right:3rem;font-size:2.35rem}.hero-title{font-size:.9rem}.hero-content .lead{font-size:.84rem}.hero-star-one{top:20%;left:4%}.hero-star-two{top:14%;right:5%}.scroll-cue{display:none}.cert-strip,.project-grid,.timeline-grid,.skills-grid,.cv-grid{grid-template-columns:1fr}.cert-strip>span,.cert-strip>span:nth-child(3n){border-right:0;border-bottom:1px solid var(--section-line);min-height:6.5rem;padding:1.1rem .5rem}.cert-strip>span:last-child{border-bottom:0}.project-grid{border-left:0}.project-card{border-right:0;padding:1.3rem .35rem}.timeline-left,.timeline-right,.timeline-grid>div:nth-child(2n){border-right:0}.experience-item,.education-card{padding:1.4rem .35rem}.skills-grid article,.skills-grid article:nth-child(2),.skills-grid article:nth-child(-n+2){border-right:0;border-bottom:1px solid var(--section-line);padding:1.3rem .35rem}.skills-grid article:last-child{border-bottom:0}.cv-grid article{border-right:0;border-bottom:1px solid var(--section-line);padding:1.3rem .35rem}.cv-grid article:last-child{border-bottom:0}#cv .cv-actions{justify-content:flex-start}footer{flex-direction:column;align-items:flex-start;gap:.55rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
