@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap";*,*:before,*:after{box-sizing:border-box}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list]{list-style:none}html{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.6}a:not([class]){text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--fs-300: 1rem;--fs-400: 1.125rem;--fs-500: 1.563rem;--fs-600: 1.953rem;--fs-700: 2.441rem;--fs-800: 3.052rem;--section-spacing: 3.5rem;--container-max: 75rem;--container-padding: 1.5rem;--ff-body: "Inter", sans-serif;--ff-heading: "Plus Jakarta Sans", sans-serif;--ff-mono: "JetBrains Mono", monospace;--transition-fast: .2s ease;--transition-medium: .4s ease;--transition-slow: .35s ease-in-out}@media(min-width:40em){:root{--fs-300: 1rem;--fs-400: 1.25rem;--fs-500: 2rem;--fs-600: 2.827rem;--fs-700: 4rem;--fs-800: 5.653rem;--section-spacing: 7rem}}[data-theme=dark]{--bg: #1d1e1c;--bg-card: #2b2c28;--bg-nav: rgba(29, 30, 28, .85);--text: hsl(0, 0%, 87%);--text-heading: hsl(0, 0%, 93%);--text-muted: hsl(0, 0%, 60%);--accent: hsl(262, 83%, 74%);--accent-dim: hsl(262, 60%, 55%);--btn-bg: hsl(0, 0%, 93%);--btn-text: hsl(0, 0%, 10%);--border: hsl(0, 0%, 22%);--scrollbar-track: #1d1e1c;--scrollbar-thumb: hsl(0, 0%, 30%);--card-shadow: 0 2px 8px rgba(0, 0, 0, .3)}[data-theme=light]{--bg: #f7f7f7;--bg-card: #ffffff;--bg-nav: rgba(247, 247, 247, .85);--text: hsl(0, 0%, 15%);--text-heading: hsl(0, 0%, 8%);--text-muted: hsl(0, 0%, 40%);--accent: hsl(262, 83%, 58%);--accent-dim: hsl(262, 60%, 45%);--btn-bg: hsl(0, 0%, 10%);--btn-text: hsl(0, 0%, 95%);--border: hsl(0, 0%, 85%);--scrollbar-track: #f7f7f7;--scrollbar-thumb: hsl(0, 0%, 70%);--card-shadow: 0 2px 8px rgba(0, 0, 0, .08)}body{font-family:var(--ff-body);font-size:var(--fs-400);color:var(--text);background-color:var(--bg);letter-spacing:-.3px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color 0s,color 0s}h1,h2,h3,h4{font-family:var(--ff-heading);font-weight:700;line-height:1.1;color:var(--text-heading)}h1{font-size:clamp(var(--fs-700),calc(1rem + 5vw),5.5rem);font-weight:800;letter-spacing:-2px;color:var(--text-heading)}h2{font-size:var(--fs-600);font-weight:700}h3{font-size:var(--fs-500);font-weight:600}h4{font-size:var(--fs-400);font-weight:600}small,.text-small{font-size:var(--fs-300)}a{color:var(--accent);transition:color var(--transition-fast)}a:hover,a:focus{color:var(--text-heading);text-decoration:none}p:not([class]),ul:not([class]),li:not([class]){max-width:60ch}strong{font-weight:600}::selection{background:var(--accent);color:#fff}body::-webkit-scrollbar{width:.75rem}body::-webkit-scrollbar-track{background:var(--scrollbar-track)}body::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:100vw}.container{padding:0 var(--container-padding);max-width:var(--container-max);margin:0 auto}.flow>*+*{margin-top:var(--flow-spacer, .75em)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.text-mono{font-family:var(--ff-mono)}.text-muted{color:var(--text-muted)}.text-accent{color:var(--accent)}.button{--animation-duration: .375s;display:inline-flex;align-items:center;justify-content:center;border:0;font-family:var(--ff-body);font-weight:700;font-size:var(--fs-300);text-transform:uppercase;text-decoration:none;line-height:1.1;letter-spacing:.04em;padding:.95em 1.75em;cursor:pointer;color:var(--btn-text);background-color:var(--btn-bg);border-radius:.25em;position:relative;isolation:isolate;overflow:clip;transition:color var(--animation-duration) ease,background-color var(--animation-duration) ease}@supports (anchor-name: --anchor){.button{anchor-scope:--active-cell}}.button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-content{pointer-events:none;position:relative;z-index:3;display:inline-flex;align-items:center;gap:.5rem}.btn-cells{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(10,1fr)}@supports (anchor-name: --anchor){.btn-cells span{position:relative}.btn-cells span:hover{anchor-name:--active-cell}.btn-cells:not(:hover) span{transition:anchor-name 0ms;transition-delay:var(--animation-duration);transition-behavior:allow-discrete}.btn-cells:before{--size: 50px;content:"";position:absolute;position-anchor:--active-cell;left:anchor(left);bottom:anchor(top);width:var(--size);aspect-ratio:1;background:linear-gradient(315deg in oklch,var(--accent, hsl(262, 83%, 65%)),hsl(320,70%,60%));transition:all var(--animation-duration) ease,inset .1s;transform:scale(0);opacity:.5;border-radius:100px}.btn-cells:hover:before{opacity:1;transform:scale(10)}.btn-cells:has(>:nth-child(11):hover):before{bottom:calc(anchor(center) - var(--size) / 2);left:calc(anchor(center) - var(--size))}.btn-cells:has(>:nth-child(20):hover):before{bottom:calc(anchor(center) - var(--size) / 2);right:calc(anchor(center) - var(--size))}.btn-cells:has(>:nth-child(n+21):hover):before{bottom:calc(anchor(bottom) - var(--size))}.btn-cells:not(:hover):before{transition:opacity var(--animation-duration),inset 50ms,transform var(--animation-duration);transition-delay:var(--animation-duration),var(--animation-duration),0s}.button:hover{color:var(--btn-bg, #fff)}}@supports not (anchor-name: --anchor){.button:hover,.button:focus-visible{background-color:var(--accent);color:#fff}}.site-header{position:sticky;top:-150px;z-index:1000;padding-top:1rem;pointer-events:none}.primary-layout{padding:0 var(--container-padding);max-width:var(--container-max);margin:0 auto;pointer-events:auto}.page-header{padding:.5rem 1rem;display:flex;gap:.5rem 2rem;align-items:center;justify-content:space-between;flex-direction:row;background-color:var(--bg);transition:transform .6s cubic-bezier(.22,1,.36,1),background-color .3s,padding .3s,box-shadow .3s,border-color .3s;border:1px solid transparent;anchor-name:--nav-link;isolation:isolate}.page-header.stuck{background-color:var(--bg-nav);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:.5rem 2rem;border-radius:100vw;transform:translateY(160px);box-shadow:0 4px 24px #0000001a;border-color:var(--border)}.logo{font-family:var(--ff-mono);font-size:var(--fs-400);font-weight:700;color:var(--text-heading);text-decoration:none;transition:color .5s;padding:.25rem .5rem;background:linear-gradient(315deg,var(--accent, hsl(262, 83%, 65%)),hsl(320,70%,60%));background-clip:text;-webkit-background-clip:text}.logo:hover{color:transparent}.group{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.page-header nav ul{list-style:none;padding:0;margin:0;display:flex;gap:1rem;font-size:var(--fs-300)}@media(min-width:48em){.page-header nav ul{gap:1.5rem}}.page-header nav a{display:block;text-decoration:none;font-size:var(--fs-300);font-weight:500;position:relative;padding:.5rem 1rem;text-transform:lowercase}.page-header nav ul{position:relative}.page-header nav a{color:var(--text);transition:color .2s ease;z-index:2;position:relative}.page-header nav a.nav-active-text{color:var(--bg)}.nav-indicator{position:absolute;top:0;left:0;height:100%;background-color:var(--accent);border-radius:.35rem;z-index:1;pointer-events:none;transform-origin:bottom;opacity:0;transform:scaleY(.08);transition:transform .2s ease,left .3s ease,width .3s ease,opacity .2s ease}.nav-indicator.is-visible{opacity:1}.nav-indicator.is-scaled-up{transform:scaleY(1)}.theme-toggle,.nav-hamburger{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:.5rem;display:flex;align-items:center;border-radius:50%;transition:background-color var(--transition-fast),color var(--transition-fast)}.theme-toggle:hover,.nav-hamburger:hover{background-color:var(--border);color:var(--text-heading)}.nav-hamburger{display:none}@media(max-width:48em){.page-header nav{display:none}.nav-hamburger{display:flex}}.mobile-menu{position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--bg);z-index:1001;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;animation:fadeIn .3s ease-out forwards}.mobile-menu a{font-family:var(--ff-heading);font-size:var(--fs-500);font-weight:600;color:var(--text-heading);text-decoration:none;text-transform:lowercase;transition:color var(--transition-fast)}.mobile-menu a:hover{color:var(--accent)}.hero{position:relative;padding:calc(var(--section-spacing) + 3rem) 0 var(--section-spacing);display:flex;flex-direction:column;align-items:center}.hero-image{order:-1}.hero__content{display:flex;flex-direction:column;align-items:center;text-align:center;order:1}@media(min-width:48em){.hero{flex-direction:row;align-items:flex-start;justify-content:space-between;text-align:left;gap:clamp(2rem,5vw,4rem)}.hero__content{align-items:flex-start;text-align:left;order:0}.hero-image{flex-shrink:0;order:0}}.hero h1{font-size:clamp(3.2rem,8vw + 1rem,5.5rem);font-weight:900;line-height:1.05;letter-spacing:-3px;position:relative}.hero h1+p,.hero h1~p{font-size:var(--fs-500);color:var(--text-muted)}.hero__paragraph{max-width:55ch}.hero__paragraph .accent-underline{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:.15em;text-underline-offset:.2em}.hero-image{position:relative;aspect-ratio:1 / 1;inline-size:350px;margin:0 auto 2rem;display:grid;place-items:end;isolation:isolate}@media(min-width:48em){.hero-image{margin:0}}.hero-image:before{content:"";position:absolute;bottom:0;left:0;width:100%;aspect-ratio:1 / 1;background:linear-gradient(315deg,var(--accent, hsl(262, 83%, 65%)),hsl(320,70%,60%));border-radius:50%;z-index:-1;transition:opacity .5s;opacity:.5}.hero:has(h1:hover) .hero-image:before,.hero-image:hover:before{opacity:1}.hero-image img{block-size:auto;inline-size:100%;aspect-ratio:6/7;object-fit:cover;object-position:center top;border-radius:0 0 100vw 100vw;scale:1.25;transform-origin:bottom center;transition:scale .5s}.hero__cta-row{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:2rem}.hero__social-row{display:flex;justify-content:center;gap:1.25rem;margin-top:1.5rem}@media(min-width:48em){.hero__cta-row,.hero__social-row{justify-content:flex-start}}.hero__social-link{color:var(--text-muted);transition:color var(--transition-fast),transform var(--transition-fast)}.hero__social-link:hover{color:var(--accent);transform:translateY(-2px)}.content-grid{display:grid;grid-template-columns:1fr;grid-auto-flow:dense;gap:1.5rem;padding:var(--section-spacing) 0}@media(min-width:44em){.content-grid{grid-template-columns:repeat(2,1fr)}}.card{background-color:var(--bg-card);border-radius:1rem;padding:2rem;box-shadow:var(--card-shadow);border:1px solid var(--border);display:flex;flex-direction:column;gap:1rem;transition:transform var(--transition-slow),box-shadow var(--transition-slow)}.card:hover{transform:translateY(-4px);box-shadow:0 8px 30px #0000001f}.card__title{font-family:var(--ff-heading);font-size:var(--fs-500);font-weight:700;color:var(--text-heading);margin:0}.card__description{color:var(--text-muted);font-size:var(--fs-300);line-height:1.6;flex:1}.card__footer,.tags{margin-top:auto}.card--span-2{grid-column:span 1}@media(min-width:40em){.card--span-2{grid-column:span 2}}.card--featured{border-color:var(--accent-dim);background:linear-gradient(to bottom right,var(--bg-card),hsla(262,83%,74%,.05))}.card--featured .card__title{color:var(--text-heading)}.card--secondary{background-color:transparent;border-color:var(--border);box-shadow:none}.card--secondary:hover{background-color:#8080800d;box-shadow:none}.card--secondary .about-card__icon,.card--secondary .card__title{color:var(--text-muted)}.card--accent-red{--card-accent: hsl(345, 88%, 46%)}.card--accent-blue{--card-accent: hsl(219, 89%, 50%)}.card--accent-green{--card-accent: hsl(150, 60%, 40%)}.card--accent-purple{--card-accent: hsl(262, 83%, 65%)}.card--accent-red .card__title,.card--accent-blue .card__title,.card--accent-green .card__title,.card--accent-purple .card__title{color:var(--card-accent, var(--text-heading))}.section{padding:var(--section-spacing) 0}.section__header{margin-bottom:2rem}.section__title{margin-bottom:.25em}.section__subtitle{color:var(--text-muted);font-size:var(--fs-300);font-weight:300}.contact-form{display:grid;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:var(--fs-300);font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.form-group input,.form-group textarea{background:transparent;border:none;border-bottom:2px solid var(--border);padding:.75rem 0;color:var(--text);font-size:var(--fs-400);transition:border-color var(--transition-fast);outline:none;resize:vertical}.form-group input:focus,.form-group textarea:focus{border-bottom-color:var(--accent)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted);opacity:.5}.primary-footer{font-size:var(--fs-300);color:var(--text-muted);margin-top:var(--section-spacing);padding:3rem var(--container-padding);text-align:center}.primary-footer p{margin-left:auto;margin-right:auto}.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;margin:0 0 2rem;padding:0;list-style:none}.footer-links a{font-family:var(--ff-mono);font-weight:600;color:var(--text-muted);text-decoration:none;font-size:.85rem;letter-spacing:-.5px}.footer-links a:hover{color:var(--accent)}.server-status{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--ff-mono);font-size:.8rem;color:var(--text-muted);margin-top:1rem}.status-dot{width:8px;height:8px;border-radius:50%;background-color:#2eb873;animation:pulse-dot 2s ease-in-out infinite}.status-dot--offline{background-color:#d92626;animation:none}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.projects-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width:44em){.projects-grid{grid-template-columns:repeat(2,1fr)}}.project-card{background-color:var(--bg-card);border-radius:1rem;padding:2rem;border:1px solid var(--border);box-shadow:var(--card-shadow);transition:transform var(--transition-slow),box-shadow var(--transition-slow);display:flex;flex-direction:column;height:100%}.project-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px #0000001f}.project-card__subtitle{font-family:var(--ff-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:.5rem}.project-card__title{font-family:var(--ff-heading);font-weight:700;font-size:var(--fs-500);color:var(--text-heading);margin-bottom:.75rem}.project-card__description{color:var(--text-muted);font-size:var(--fs-300);line-height:1.6;margin-bottom:1.25rem}.project-card__tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.tag{font-family:var(--ff-mono);font-size:.7rem;padding:.3em .75em;background-color:var(--border);color:var(--text-muted);border-radius:100vw;letter-spacing:.02em}.tag.highlight{background-color:#2eb87326;color:#2eb873;border:1px solid hsla(150,60%,45%,.5)}.project-card__links{display:flex;gap:1rem}.project-card__links a{font-size:var(--fs-300);font-weight:500;text-decoration:none;color:var(--accent);display:inline-flex;align-items:center;gap:.3rem}.project-card__links a:hover{text-decoration:underline}.project-card--restricted{border-color:#981b1b}.project-card--restricted .project-card__subtitle{color:#d92626}.project-card--restricted .restricted-bar{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#410b0b;border-radius:.5rem;color:#e05252;font-family:var(--ff-mono);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(160px,100%),1fr));gap:2rem}.skill-category__title{font-family:var(--ff-mono);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding-bottom:.75rem;border-bottom:2px solid var(--border);margin-bottom:1rem;transition:border-color var(--transition-fast)}.skill-category:hover .skill-category__title{border-color:var(--accent)}.skill-category__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.skill-item{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-300);color:var(--text);transition:color var(--transition-fast)}.skill-item__dot{width:6px;height:6px;border-radius:50%;background-color:var(--border);transition:background-color var(--transition-fast),box-shadow var(--transition-fast);flex-shrink:0}.skill-item:hover .skill-item__dot{background-color:var(--accent);box-shadow:0 0 8px var(--accent)}.about-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width:40em){.about-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:60em){.about-grid{grid-template-columns:repeat(3,1fr)}}.about-card{background-color:var(--bg-card);border-radius:1rem;padding:2rem;border:1px solid var(--border);box-shadow:var(--card-shadow);transition:transform var(--transition-slow);display:flex;flex-direction:column;height:100%}.about-card.highlight-card{border-color:#2eb873;background-color:#2eb87305}.about-card:hover{transform:translateY(-3px)}.about-card__icon{color:var(--accent);margin-bottom:1rem}.about-card__title{font-family:var(--ff-heading);font-weight:700;font-size:var(--fs-400);color:var(--text-heading);margin-bottom:.5rem}.about-card__text{color:var(--text-muted);font-size:var(--fs-300);line-height:1.6}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:9999}.cg-wrapper{display:flex;flex-direction:column;align-items:flex-start;gap:1.25rem}.cg-clip{width:100%;position:relative;transition:max-height .45s cubic-bezier(.4,0,.2,1)}.cg-clip--collapsed{overflow:hidden}.cg-fade{position:absolute;left:0;right:0;bottom:0;height:160px;background:linear-gradient(to bottom,transparent 0%,transparent 40%,var(--bg) 75%);pointer-events:none}.cg-toggle{display:inline-flex;align-items:center;gap:.45rem;padding:.55em 1.35em;background:transparent;border:1px solid var(--border);border-radius:100vw;color:var(--text-muted);font-family:var(--ff-mono);font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:lowercase;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast)}.cg-toggle:hover{color:var(--accent);border-color:var(--accent);background-color:#ae86f412;box-shadow:0 0 16px #ae86f426}.cg-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cg-toggle__icon{transition:transform .3s ease;flex-shrink:0}.cg-toggle--expanded .cg-toggle__icon{transform:rotate(180deg)}
