@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;700&family=Inter:wght@400;500;600&display=swap";.header{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);background:#0a0a0abf;position:fixed;top:0;left:0;right:0}.header__inner{max-width:var(--max-width);justify-content:space-between;align-items:center;margin:0 auto;padding:1rem 1.5rem;display:flex}.header__logo{align-items:center;display:flex}.header__logo-image{width:auto;height:32px;display:block}.header__nav{gap:1.5rem;display:flex}.header__link{color:var(--text-muted);font-size:.9rem;transition:color .2s}.header__link:hover,.header__link--active{color:var(--accent)}.header__toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:4px;padding:4px;display:none}.header__toggle span{background:var(--accent);width:22px;height:2px}@media (width<=768px){.header__toggle{display:flex}.header__nav{background:var(--bg-alt);flex-direction:column;gap:1rem;padding:1rem 1.5rem;display:none;position:absolute;top:100%;left:0;right:0}.header__nav--open{display:flex}}.stroke-text{line-height:1;display:inline-flex;position:relative}.stroke-text__letter{white-space:pre;display:inline-block;position:relative}.stroke-text__layer{white-space:pre;display:inline-block}.stroke-text__layer--fill{position:absolute;inset:0}.fold-text{flex-wrap:wrap;line-height:1.3;display:inline-flex}.fold-text__unit{display:inline-block}.fold-text__inner{transform-style:preserve-3d;backface-visibility:hidden;white-space:pre;display:inline-block;position:relative}.fold-text__crease{pointer-events:none;position:absolute;inset:0}.hero{align-items:center;min-height:clamp(560px,100vh,820px);padding:8rem 1.5rem 2rem;display:flex;position:relative;overflow:hidden}.hero__content{z-index:1;max-width:640px;margin:0 auto;position:relative}.hero__eyebrow{color:var(--accent);letter-spacing:.2em;text-transform:uppercase;margin-bottom:1rem;font-size:.75rem}.hero__name{margin-bottom:.75rem;font-size:clamp(2.5rem,6vw,4rem)}.hero__tagline{color:var(--accent);min-height:1.6em;margin-bottom:1.5rem;font-size:1.1rem}.hero__bio{color:var(--text-muted);margin-bottom:2rem;line-height:1.6}.hero__actions{flex-wrap:wrap;gap:1rem;display:flex}.services{max-width:var(--max-width);margin:0 auto;padding:4rem 1.5rem}.services__grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;display:grid}.service-card{border:1px solid var(--border);background:var(--bg-alt-2);border-radius:10px;padding:1.5rem;transition:border-color .2s,transform .2s}.service-card:hover,.service-card--active{border-color:var(--accent);transform:translateY(-4px)}.service-card__icon{color:var(--accent);margin-bottom:.75rem;font-size:1.5rem}.service-card h3{margin-bottom:.5rem}.service-card p{color:var(--text-muted);font-size:.9rem;line-height:1.5}.project-carousel{background:var(--bg);border:1px solid var(--border);border-radius:12px;margin-bottom:1.25rem;position:relative;overflow:hidden}.project-carousel__image{width:100%;height:auto;display:block}.project-carousel__image--fitted{object-fit:contain;height:100%}.project-carousel__arrow{z-index:2;border:1px solid var(--border);width:32px;height:32px;color:var(--text);cursor:pointer;background:#0a0a0a99;border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;line-height:1;transition:background .2s,color .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.project-carousel__arrow:hover{background:var(--accent);color:#04211c}.project-carousel__arrow--prev{left:10px}.project-carousel__arrow--next{right:10px}.project-carousel__dots{z-index:1;gap:6px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.project-carousel__dot{background:#eafffb66;border-radius:50%;width:6px;height:6px}.project-carousel__dot--active{background:var(--accent)}.case-study-modal__backdrop{z-index:200;background:#000c;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.case-study-modal{background:var(--bg-alt-2);border:1px solid var(--border);border-radius:20px;width:100%;max-width:860px;max-height:85vh;padding:2.5rem;position:relative;overflow-y:auto}.case-study-modal__close{color:var(--text);cursor:pointer;background:0 0;border:none;font-size:1.75rem;line-height:1;position:absolute;top:1.25rem;right:1.5rem}.case-study-modal__close:hover{color:var(--accent)}.case-study-modal__title{margin:0 0 2rem;font-size:clamp(1.75rem,4vw,2.5rem)}.case-study-modal__list{flex-direction:column;gap:2rem;display:flex}.case-study-modal__item{flex-direction:column;gap:1rem;display:flex}.case-study-modal__image{border:1px solid var(--border);border-radius:12px;width:100%}.case-study-modal__text h4{color:var(--text);margin:0 0 .5rem;font-size:1.1rem}.case-study-modal__text p{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.5}@media (width>=640px){.case-study-modal__item{flex-direction:row;align-items:center;gap:1.5rem}.case-study-modal__image{width:60%}.case-study-modal__text{width:40%}}.projects{max-width:var(--max-width);margin:0 auto;padding:4rem 1.5rem .5rem}.projects__note{max-width:60ch;color:var(--text-muted);margin:-1.25rem 0 2.5rem;font-size:.85rem;line-height:1.5}.projects__stack{position:relative}.projects__end-spacer{height:clamp(180px,35vh,320px)}.project-sticky{position:sticky;top:90px}.project-sticky--hidden{visibility:hidden}.project-card{border:1px solid var(--border);background:var(--bg-alt-2);border-radius:16px;padding:1.75rem;box-shadow:0 20px 40px #0006}.project-card__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.project-card__heading{align-items:baseline;gap:1rem;display:flex}.project-card__number{font-family:var(--font-heading);color:var(--accent);font-size:1.5rem}.project-card__label{color:var(--text-muted);letter-spacing:.15em;text-transform:uppercase;margin:0 0 .25rem;font-size:.75rem}.project-card__heading h3{font-size:1.5rem}.project-card__status{vertical-align:middle;color:#f59e0b;letter-spacing:.05em;text-transform:uppercase;background:#f59e0b1f;border:1px solid #f59e0b66;border-radius:999px;margin-left:.65rem;padding:.2rem .6rem;font-size:.65rem;font-weight:600;display:inline-block}.project-card__status--live{color:#22c55e;background:#22c55e1f;border-color:#22c55e66}.project-card__actions{flex-wrap:wrap;gap:.75rem;display:flex}.project-card__thumbnail{object-fit:cover;border:1px solid var(--border);background:var(--bg);border-radius:12px;width:100%;max-height:420px;margin-bottom:1.25rem;display:block}.project-card__visual{border-radius:12px;height:clamp(220px,32vw,380px);margin-bottom:1.25rem}.project-card__visual--0{background:linear-gradient(135deg,#0f2f2a,#2dd4bf 140%)}.project-card__visual--1{background:linear-gradient(135deg,#0a0a0a,#14b8a6 160%)}.project-card__visual--2{background:radial-gradient(circle at 30% 30%,#2dd4bf,#050505 75%)}.project-card__description{color:var(--text-muted);margin:0 0 1.25rem;font-size:.9rem;line-height:1.5}.project-card__footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.project-card__stack{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.project-card__stack li{color:var(--accent);border:1px solid var(--border);border-radius:999px;padding:.2rem .6rem;font-size:.75rem}.project-card__code-link{border:1px solid var(--border);width:38px;height:38px;color:var(--text);border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;transition:border-color .2s,color .2s;display:flex}.project-card__code-link:hover{border-color:var(--accent);color:var(--accent)}.project-card__code-link--pending{color:var(--text-muted);opacity:.5;cursor:default}@media (width>=769px){.project-sticky{align-items:flex-start;min-height:640px;display:flex}.project-card{width:100%}}.logoloop{width:100%;position:relative;overflow:hidden}.logoloop__track{will-change:transform;width:max-content;display:flex}.logoloop--vertical .logoloop__track{flex-direction:column;height:max-content}.logoloop__list{align-items:center;gap:var(--logoloop-gap,32px);padding:0 var(--logoloop-gap,32px) 0 0;flex:none;margin:0;list-style:none;display:flex}.logoloop--vertical .logoloop__list{padding:0 0 var(--logoloop-gap,32px) 0;flex-direction:column}.logoloop__item{flex:none;justify-content:center;align-items:center;display:flex}.logoloop__item img{width:auto;height:var(--logoloop-logoHeight,28px);display:block}.logoloop__node{color:var(--text-muted);font-size:var(--logoloop-logoHeight,28px);align-items:center;transition:color .25s,transform .25s;display:inline-flex}.logoloop__link{display:inline-flex}.logoloop--scale-hover .logoloop__item:hover .logoloop__node,.logoloop--scale-hover .logoloop__item:hover img{transform:scale(1.15)}.logoloop--scale-hover .logoloop__item:hover .logoloop__node{color:var(--accent)}.logoloop--fade:before,.logoloop--fade:after{content:"";pointer-events:none;z-index:1;width:72px;position:absolute;top:0;bottom:0}.logoloop--fade:before{background:linear-gradient(to right, var(--logoloop-fadeColor,var(--bg)), transparent);left:0}.logoloop--fade:after{background:linear-gradient(to left, var(--logoloop-fadeColor,var(--bg)), transparent);right:0}.logoloop--vertical.logoloop--fade:before,.logoloop--vertical.logoloop--fade:after{width:auto;height:72px;left:0;right:0}.logoloop--vertical.logoloop--fade:before{background:linear-gradient(to bottom, var(--logoloop-fadeColor,var(--bg)), transparent);top:0;bottom:auto}.logoloop--vertical.logoloop--fade:after{background:linear-gradient(to top, var(--logoloop-fadeColor,var(--bg)), transparent);top:auto;bottom:0}*{scrollbar-width:none}.skills{max-width:var(--max-width);margin:0 auto;padding:2rem 1.5rem 4rem}.skills__stats{gap:3rem;margin-bottom:3rem;display:flex}.skills__stat span{font-family:var(--font-heading);color:var(--accent);font-size:2.5rem;display:block}.skills__stat p{color:var(--text-muted);margin:.25rem 0 0;font-size:.85rem}.skills__group{margin-bottom:2rem}.skills__group h3{color:var(--text-muted);margin-bottom:1rem;font-size:1rem}.skills__badges{flex-wrap:wrap;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.skills__badge{border:1px solid var(--border);color:var(--text);border-radius:999px;align-items:center;gap:.5rem;padding:.4rem .9rem;font-size:.85rem;display:inline-flex}.skills__badge svg{color:var(--accent)}.contact{max-width:var(--max-width);margin:0 auto;padding:4rem 1.5rem 6rem}.contact__grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;display:grid}.contact__card{border:1px solid var(--border);color:var(--text);border-radius:10px;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 1.5rem;transition:border-color .2s,transform .2s,color .2s;display:flex}.contact__card:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-4px)}.contact__card svg{font-size:1.75rem}.footer{border-top:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:2rem 1.5rem;font-size:.85rem;display:flex}.footer__links{gap:1rem;display:flex}.footer__links a:hover{color:var(--accent)}.custom-cursor{background:var(--accent);pointer-events:none;z-index:999;mix-blend-mode:difference;border-radius:50%;width:16px;height:16px;margin:-8px 0 0 -8px;transition:transform 80ms ease-out;position:fixed;top:0;left:0}:root{--bg:#0a0a0a;--bg-alt:#050505;--bg-alt-2:#111;--accent:#2dd4bf;--accent-dark:#14b8a6;--text:#eafffb;--text-muted:#8a9a97;--border:#2dd4bf33;--font-heading:"Space Grotesk", sans-serif;--font-body:"Inter", sans-serif;--max-width:1120px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);cursor:none;margin:0}@media (pointer:coarse){body{cursor:auto}}h1,h2,h3{font-family:var(--font-heading);margin:0}a{color:inherit;text-decoration:none}.section-label{color:var(--accent);letter-spacing:.2em;text-transform:uppercase;margin:0 0 .5rem;font-size:.75rem}.section-title{margin-bottom:2rem;font-size:clamp(1.75rem,4vw,2.5rem)}.btn{border-radius:6px;align-items:center;padding:.75rem 1.5rem;font-size:.9rem;font-weight:600;transition:all .2s;display:inline-flex}button.btn{cursor:pointer;background:0 0;font-family:inherit}.btn--primary{background:var(--accent);color:#04211c}.btn--primary:hover{background:var(--accent-dark)}.btn--outline{border:1px solid var(--accent);color:var(--accent)}.btn--outline:hover{background:#2dd4bf1a}.btn--ghost{color:var(--text-muted)}.btn--ghost:hover{color:var(--text)}
