:root{--bg:#fafafa;--surface:#fff;--surface-2:#f4f4f5;--border-soft:#efefef;--border:#e2e2e2;--text:#111;--text-2:#666;--text-3:#999;--accent:#111;--accent-ink:#fff;--focus:#06f;--success:#10b981;--warning:#f59e0b;--error:#ef4444;--shadow-sm:0 1px 2px #1111110d;--shadow-md:0 12px 32px -14px #11111124;--shadow-lg:0 28px 64px -22px #1113;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-xl:24px;--r-full:9999px;--fs-display:clamp(40px, 6vw, 48px);--fs-h1:clamp(28px, 4.5vw, 32px);--fs-h2:24px;--fs-h3:18px;--fs-body:15px;--fs-sm:13px;--fs-caption:12px;--lh-display:1.1;--lh-h1:1.2;--lh-h2:1.3;--lh-h3:1.4;--lh-body:1.6;--ls-display:-.03em;--ls-h1:-.02em;--ls-h2:-.01em;--ls-caption:.02em;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--container:1200px;--nav-h:64px;--section-pad:clamp(72px, 9vw, 112px);--ease-out:cubic-bezier(.25, 1, .5, 1);--ease-in:cubic-bezier(.55, 0, .85, .36);--t-fast:.2s;--t-base:.3s;--t-slow:.5s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0b0b0d;--surface:#141417;--surface-2:#1b1b20;--border-soft:#1f1f25;--border:#2a2a33;--text:#f4f4f5;--text-2:#a1a1aa;--text-3:#71717a;--accent:#fff;--accent-ink:#0b0b0d;--shadow-sm:0 1px 2px #00000073;--shadow-md:0 12px 32px -14px #0000008c;--shadow-lg:0 28px 64px -22px #000000a6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h)}body{font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:.01em;color:var(--text-2);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;transition:background-color .4s var(--ease-out), color .4s var(--ease-out);overflow-x:hidden}h1,h2,h3,h4{font-family:var(--font-sans);color:var(--text);text-wrap:balance;font-weight:600}h1{font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--ls-h1)}h2{font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2)}h3{font-size:var(--fs-h3);line-height:var(--lh-h3)}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}img,svg{max-width:100%;display:block}::selection{background:var(--text);color:var(--bg)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:4px}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--r-full);border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.progress-track{z-index:100;pointer-events:none;background:0 0;width:100%;height:3px;position:fixed;top:0;left:0}.progress-track__bar{background:var(--text);transform-origin:0;height:100%;transition:width .15s linear}.container{max-width:var(--container);margin-inline:auto;padding-inline:24px}.section{padding-block:var(--section-pad);scroll-margin-top:var(--nav-h)}.eyebrow{font-size:var(--fs-caption);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);align-items:center;gap:10px;font-weight:600;display:inline-flex}.eyebrow__line{background:var(--text);width:24px;height:1px}.text-gradient{background:linear-gradient(120deg, var(--text) 30%, var(--text-3) 100%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}.section-head{max-width:640px}.section-head__title{margin-block:16px 12px}.section-head__desc{color:var(--text-2);max-width:56ch}.tag{border-radius:var(--r-full);background:var(--surface-2);border:1px solid var(--border-soft);font-size:var(--fs-caption);letter-spacing:.03em;color:var(--text-2);padding:4px 10px;font-weight:500;display:inline-block}.chip{border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface);color:var(--text-2);transition:background-color .2s var(--ease-out), color .2s var(--ease-out), border-color .2s var(--ease-out), transform .15s var(--ease-out);padding:8px 18px;font-size:14px;font-weight:500}.chip:hover{border-color:var(--text-3);color:var(--text)}.chip:active{transform:scale(.95)}.chip--active{background:var(--text);border-color:var(--text);color:var(--bg)}.btn{border-radius:var(--r-md);font-size:var(--fs-body);-webkit-user-select:none;user-select:none;transition:transform .15s var(--ease-out), box-shadow .25s var(--ease-out), background-color .25s var(--ease-out), border-color .25s var(--ease-out), color .25s var(--ease-out);justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-weight:500;line-height:1;display:inline-flex}.btn:active{transition-duration:.1s;transform:scale(.95)}.btn--primary{background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-sm)}.btn--primary:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn--secondary{border:1px solid var(--border);color:var(--text);background:0 0}.btn--secondary:hover{background:var(--surface-2);transform:translateY(-2px)}.btn--light{background:var(--accent-ink);color:var(--accent)}.btn--light:hover{transform:translateY(-2px);box-shadow:0 20px 50px -15px #00000080}.btn--sm{border-radius:var(--r-sm);padding:10px 18px;font-size:14px}.icon-btn{border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text);transition:transform .2s var(--ease-out), box-shadow .2s var(--ease-out), background-color .2s var(--ease-out), border-color .2s var(--ease-out);justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--surface-2);box-shadow:var(--shadow-md);transform:translateY(-3px)}.icon-btn:active{transform:scale(.95)}.skill-icon{flex-shrink:0}.reveal{opacity:0;transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);will-change:opacity, transform;transform:translateY(24px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}.nav{z-index:90;height:var(--nav-h);background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:background-color .3s var(--ease-out), border-color .3s var(--ease-out), box-shadow .3s var(--ease-out);border-bottom:1px solid #0000;position:fixed;top:0;left:0;right:0}.nav--scrolled{background:color-mix(in srgb, var(--bg) 85%, transparent);border-color:var(--border-soft);box-shadow:var(--shadow-sm)}.nav__inner{align-items:center;gap:32px;height:100%;display:flex}.nav__brand{letter-spacing:-.02em;color:var(--text);align-items:center;gap:12px;font-size:18px;font-weight:700;display:inline-flex}.nav__logo{border-radius:var(--r-full);background:var(--text);width:32px;height:32px;color:var(--bg);letter-spacing:0;transition:transform .2s var(--ease-out);justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.nav__brand:hover .nav__logo{transform:rotate(-8deg)scale(1.05)}.nav__menu{flex:1}.nav__list{align-items:center;gap:32px;display:flex}.nav__link{color:var(--text-2);transition:color .2s var(--ease-out);padding-block:6px;font-size:14px;font-weight:500;position:relative}.nav__link:after{content:"";border-radius:var(--r-full);background:var(--text);width:4px;height:4px;transition:transform .25s var(--ease-out);position:absolute;bottom:-2px;left:50%;transform:translate(-50%)scale(0)}.nav__link:hover,.nav__link--active{color:var(--text)}.nav__link--active:after{transform:translate(-50%)scale(1)}.nav__cta{margin-left:auto}.nav__toggle{border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:8px;display:none}.nav__toggle span{background:var(--text);height:2px;transition:transform .3s var(--ease-out), opacity .2s;border-radius:2px;display:block}.nav__toggle--active span:first-child{transform:translateY(7px)rotate(45deg)}.nav__toggle--active span:nth-child(2){opacity:0}.nav__toggle--active span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.hero{padding-top:calc(var(--nav-h) + 48px);align-items:center;padding-bottom:clamp(48px,7vw,88px);display:flex;position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;background-image:radial-gradient(#1111111a 1px,#0000 1.4px);background-size:26px 26px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(90% 80% at 50% 35%,#000 35%,#0000 78%);mask-image:radial-gradient(90% 80% at 50% 35%,#000 35%,#0000 78%)}.hero__blob{filter:blur(80px);opacity:.6;pointer-events:none;z-index:0;border-radius:50%;position:absolute}.hero__blob--one{width:460px;height:460px;animation:float-slow 14s var(--ease-out) infinite alternate;background:radial-gradient(circle at 30% 30%,#11111114,#0000 70%);top:-160px;right:-120px}.hero__blob--two{width:360px;height:360px;animation:float-slow 18s var(--ease-out) infinite alternate-reverse;background:radial-gradient(circle at 60% 40%,#11111112,#0000 70%);bottom:-140px;left:-140px}.hero__blob--three{width:240px;height:240px;animation:float-slow 22s var(--ease-out) infinite alternate;background:radial-gradient(circle,#1111110d,#0000 70%);top:42%;left:44%}@media (prefers-color-scheme:dark){.hero:before{background-image:radial-gradient(#ffffff17 1px,#0000 1.4px)}.hero__blob--one{background:radial-gradient(circle at 30% 30%,#ffffff12,#0000 70%)}.hero__blob--two{background:radial-gradient(circle at 60% 40%,#ffffff0f,#0000 70%)}.hero__blob--three{background:radial-gradient(circle,#ffffff0d,#0000 70%)}}.hero__inner{z-index:1;grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(40px,6vw,64px);width:100%;display:grid;position:relative}.hero__content{flex-direction:column;gap:18px;display:flex}.hero__eyebrow{color:var(--text-3)}.hero__badge{border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface);color:var(--text-2);box-shadow:var(--shadow-sm);align-self:flex-start;align-items:center;gap:10px;padding:7px 14px;font-size:13px;font-weight:500;display:inline-flex}.hero__title{font-size:var(--fs-display);font-weight:700;line-height:var(--lh-display);letter-spacing:var(--ls-display);color:var(--text)}.hero__title-dot{color:var(--text-3)}.hero__typing{font-family:var(--font-mono);color:var(--text-2);flex-wrap:wrap;align-items:center;gap:10px;min-height:30px;font-size:clamp(17px,2.4vw,21px);display:flex}.hero__typing-label{color:var(--text-3)}.hero__typing-word{color:var(--text);font-weight:500}.hero__typing-cursor{color:var(--text);animation:1.1s step-end infinite blink}.hero__bio{max-width:48ch}.hero__actions{flex-wrap:wrap;gap:14px;display:flex}.hero__socials{gap:10px;display:flex}.hero__aside{perspective:1200px}.hero__card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);transition:transform .6s var(--ease-out), box-shadow .6s var(--ease-out);overflow:hidden;transform:rotateY(-4deg)rotateX(2deg)}.hero__card:hover{box-shadow:var(--shadow-lg);transform:rotateY(0)rotateX(0)translateY(-6px)}.hero__card-top{border-bottom:1px solid var(--border-soft);background:var(--surface-2);align-items:center;gap:8px;padding:14px 16px;display:flex}.hero__card-dot{border-radius:var(--r-full);background:var(--i,var(--border));width:11px;height:11px}.hero__card-tab{font-family:var(--font-mono);color:var(--text-3);margin-left:8px;font-size:12px}.hero__card-code{font-family:var(--font-mono);color:var(--text-2);padding:22px 20px;font-size:13.5px;line-height:1.9;overflow-x:auto}.tok-kw{color:var(--text);font-weight:500}.tok-id{color:var(--text)}.tok-key{color:var(--text-2)}.tok-str{color:var(--text-3)}.tok-bool{color:var(--text);font-weight:500}.hero__card-status{border-top:1px solid var(--border-soft);color:var(--text-2);align-items:center;gap:10px;padding:12px 16px;font-size:13px;display:flex}.hero__pulse{border-radius:var(--r-full);background:var(--success);width:9px;height:9px;box-shadow:0 0 0 0 color-mix(in srgb, var(--success) 60%, transparent);animation:pulse 2.4s var(--ease-out) infinite}.hero__stats{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);grid-column:1/-1;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:clamp(32px,6vw,56px);padding:28px 32px;display:grid}.hero__stat{text-align:left}.hero__stat+.hero__stat{border-left:1px solid var(--border-soft);padding-left:32px}.hero__stat-value{letter-spacing:var(--ls-h1);color:var(--text);font-variant-numeric:tabular-nums;font-size:clamp(26px,3.4vw,34px);font-weight:700}.hero__stat-label{font-size:var(--fs-caption);color:var(--text-3);letter-spacing:var(--ls-caption);margin-top:4px}.marquee{border-block:1px solid var(--border);background:var(--surface);padding-block:22px;position:relative;overflow:hidden}.marquee:before,.marquee:after{content:"";z-index:1;pointer-events:none;width:120px;position:absolute;top:0;bottom:0}.marquee:before{background:linear-gradient(to right, var(--surface), transparent);left:0}.marquee:after{background:linear-gradient(to left, var(--surface), transparent);right:0}.marquee__track{width:max-content;animation:28s linear infinite marquee;display:flex}.marquee:hover .marquee__track{animation-play-state:paused}.marquee__group{align-items:center;gap:56px;padding-right:56px;display:flex}.marquee__item{font-family:var(--font-mono);color:var(--text-3);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;transition:color .2s var(--ease-out);align-items:center;gap:56px;font-size:14px;display:inline-flex}.marquee__item:after{content:"•";color:var(--border);font-size:10px}.marquee__item:hover{color:var(--text)}.skills__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:48px;display:flex}.skills__filters{flex-wrap:wrap;gap:10px;display:flex}.skills__grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:20px;display:grid}.skill-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);transition:transform .25s var(--ease-out), border-color .25s var(--ease-out), box-shadow .25s var(--ease-out);padding:24px;position:relative}.skill-card:hover{border-color:var(--text-3);box-shadow:var(--shadow-md);transform:translateY(-4px)}.skill-card__head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.skill-card__icon{border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border-soft);width:46px;height:46px;color:var(--text);transition:transform .3s var(--ease-out), color .3s var(--ease-out);justify-content:center;align-items:center;display:inline-flex}.skill-card:hover .skill-card__icon{transform:rotate(-6deg)scale(1.06)}.skill-card__badge{font-size:var(--fs-caption);font-family:var(--font-mono);color:var(--text-3);border:1px solid var(--border-soft);border-radius:var(--r-full);background:var(--surface-2);padding:3px 9px}.skill-card__name{color:var(--text);font-size:17px;font-weight:600}.skill-card__category{font-size:var(--fs-caption);letter-spacing:var(--ls-caption);text-transform:uppercase;color:var(--text-3);margin-top:2px}.skill-bar{border-radius:var(--r-full);background:var(--surface-2);height:6px;margin-top:20px;overflow:hidden}.skill-bar__fill{border-radius:inherit;background:linear-gradient(90deg, var(--text) 0%, color-mix(in srgb, var(--text) 55%, var(--text-3)) 100%);width:0;height:100%;transition:width 1.2s var(--ease-out);display:block}.skill-card.is-visible .skill-bar__fill{width:var(--level,0%)}.skill-card__tooltip{border-radius:var(--r-sm);background:var(--text);width:max-content;max-width:220px;color:var(--bg);font-size:var(--fs-caption);text-align:center;opacity:0;pointer-events:none;z-index:5;transition:opacity .15s var(--ease-in) .2s, transform .2s var(--ease-out) .2s;padding:8px 12px;line-height:1.45;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%,6px)}.skill-card__tooltip:after{content:"";border:5px solid #0000;border-top-color:var(--text);position:absolute;top:100%;left:50%;transform:translate(-50%)}.skill-card:hover .skill-card__tooltip{opacity:1;transition:opacity .2s var(--ease-out) .2s, transform .2s var(--ease-out) .2s;transform:translate(-50%)}.projects__grid{grid-template-columns:repeat(2,1fr);gap:28px;margin-top:48px;display:grid}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:transform .15s var(--ease-out), border-color .25s var(--ease-out), box-shadow .25s var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.project-card--regular{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}.project-card:hover{border-color:var(--text-3);box-shadow:var(--shadow-lg)}.project-card--featured{flex-direction:row;grid-column:1/-1}.project-card--featured .project-card__cover{width:46%;min-height:320px}.project-card__cover{aspect-ratio:16/9;isolation:isolate;flex-shrink:0;position:relative;overflow:hidden}.project-card__monogram{letter-spacing:-.05em;color:#ffffffeb;mix-blend-mode:overlay;transition:transform .6s var(--ease-out);z-index:1;justify-content:center;align-items:center;font-size:clamp(72px,12vw,128px);font-weight:800;display:flex;position:absolute;inset:0;transform:scale(1)}.project-card:hover .project-card__monogram{transform:scale(1.12)}.project-card:hover .project-card__cover{animation:card-jitter .35s var(--ease-out) both}.project-card__shine{z-index:2;transition:transform .8s var(--ease-out);pointer-events:none;background:linear-gradient(115deg,#0000 30%,#ffffff47 45%,#0000 60%);position:absolute;inset:0;transform:translate(-100%)}.project-card:hover .project-card__shine{transform:translate(100%)}.project-card__flag{z-index:3;border-radius:var(--r-full);color:#fff;font-size:var(--fs-caption);letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000073;padding:5px 12px;font-weight:600;position:absolute;top:16px;left:16px}.project-card__body{flex-direction:column;flex:1;gap:14px;padding:28px;display:flex}.project-card__tags{flex-wrap:wrap;gap:8px;display:flex}.project-card__title{letter-spacing:var(--ls-h2);color:var(--text);font-size:20px;font-weight:700}.project-card--featured .project-card__title{font-size:26px}.project-card__tagline{font-size:var(--fs-sm);color:var(--text-3);margin-top:-8px;font-weight:500}.project-card__desc{color:var(--text-2)}.project-card__stack{flex-wrap:wrap;gap:8px;display:flex}.project-card__stack li{font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text-2);border-radius:var(--r-full);background:var(--surface-2);border:1px solid var(--border-soft);padding:4px 10px}.project-card__actions{border-top:1px solid var(--border-soft);align-items:center;gap:12px;margin-top:auto;padding-top:20px;display:flex}.contact__card{text-align:center;border-radius:var(--r-xl);background:var(--text);color:var(--bg);box-shadow:var(--shadow-lg);isolation:isolate;padding:clamp(56px,8vw,96px) 32px;position:relative;overflow:hidden}.contact__glow{z-index:-1;background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--bg) 26%, transparent), transparent 60%);pointer-events:none;position:absolute;inset:-40% -20%}.contact__status{border-radius:var(--r-full);border:1px solid color-mix(in srgb, var(--bg) 22%, transparent);background:color-mix(in srgb, var(--bg) 10%, transparent);color:color-mix(in srgb, var(--bg) 78%, transparent);align-items:center;gap:10px;margin-bottom:24px;padding:8px 16px;font-size:13px;display:inline-flex}.contact__title{letter-spacing:var(--ls-display);color:var(--bg);font-size:clamp(32px,5.5vw,52px);font-weight:700;line-height:1.12}.contact__title .text-gradient{background:linear-gradient(120deg, var(--bg) 20%, color-mix(in srgb, var(--bg) 45%, transparent) 100%);-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text}.contact__sub{max-width:46ch;color:color-mix(in srgb, var(--bg) 70%, transparent);margin:20px auto 36px}.contact__cta{padding:16px 30px;font-size:clamp(14px,2vw,17px)}.contact__socials{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:40px;display:flex}.contact__social{border-radius:var(--r-full);border:1px solid color-mix(in srgb, var(--bg) 24%, transparent);background:color-mix(in srgb, var(--bg) 8%, transparent);color:color-mix(in srgb, var(--bg) 85%, transparent);transition:transform .2s var(--ease-out), background-color .25s var(--ease-out), border-color .25s var(--ease-out);align-items:center;gap:10px;padding:10px 20px;font-size:14px;font-weight:500;display:inline-flex}.contact__social:hover{background:color-mix(in srgb, var(--bg) 16%, transparent);border-color:color-mix(in srgb, var(--bg) 40%, transparent);transform:translateY(-3px)}.contact__social:active{transform:scale(.95)}.footer{border-top:1px solid var(--border-soft);background:var(--surface);padding-block:56px 28px}.footer__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;display:flex}.footer__brand{align-items:center;gap:12px;display:flex}.footer__name{color:var(--text);font-size:16px;font-weight:700}.footer__role{font-size:var(--fs-caption);color:var(--text-3);margin-top:2px}.footer__nav{flex-wrap:wrap;gap:24px;display:flex}.footer__nav button{color:var(--text-2);transition:color .2s var(--ease-out);padding-block:4px;font-size:14px;position:relative}.footer__nav button:after{content:"";background:var(--text);transform-origin:100%;width:100%;height:1px;transition:transform .3s var(--ease-out);position:absolute;bottom:0;left:0;transform:scaleX(0)}.footer__nav button:hover{color:var(--text)}.footer__nav button:hover:after{transform-origin:0;transform:scaleX(1)}.footer__top{border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface-2);width:44px;height:44px;color:var(--text);opacity:0;pointer-events:none;transition:opacity .3s var(--ease-out), transform .3s var(--ease-out), background-color .2s, border-color .2s;justify-content:center;align-items:center;display:inline-flex;transform:translateY(8px)}.footer__top--visible{opacity:1;pointer-events:auto;transform:translateY(0)}.footer__top:hover{background:var(--text);color:var(--bg);border-color:var(--text)}.footer__copy{border-top:1px solid var(--border-soft);text-align:center;font-size:var(--fs-caption);color:var(--text-3);margin-top:40px;padding-top:24px}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes float-slow{0%{transform:translate(0)scale(1)}to{transform:translate(30px,-30px)scale(1.08)}}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--success) 55%, transparent)}70%{box-shadow:0 0 0 9px #0000}to{box-shadow:0 0 #0000}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes card-jitter{0%{transform:scale(1)rotate(0)}30%{transform:scale(1.02)rotate(1deg)}60%{transform:scale(1.02)rotate(-1deg)}85%{transform:scale(1.02)rotate(.5deg)}to{transform:scale(1.02)rotate(0)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}@media (width<=1024px){.hero__inner{grid-template-columns:1fr;gap:40px}.hero__aside{max-width:520px}.hero__stats{grid-template-columns:repeat(2,1fr);gap:24px 32px;padding:24px}.hero__stat:nth-child(3){border-left:none;padding-left:0}.project-card--featured{flex-direction:column}.project-card--featured .project-card__cover{aspect-ratio:16/9;width:100%;min-height:0}}@media (width<=860px){.nav__toggle{margin-left:auto;display:flex}.nav__cta{display:none}.nav__menu{top:var(--nav-h);background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transition:transform .3s var(--ease-out), opacity .3s var(--ease-out), visibility .3s;padding:12px 24px 28px;position:fixed;left:0;right:0;transform:translateY(-12px)}.nav__menu--open{opacity:1;visibility:visible;transform:translateY(0)}.nav__list{flex-direction:column;align-items:flex-start;gap:4px}.nav__link{width:100%;padding:12px 8px;font-size:17px;display:block}.projects__grid{grid-template-columns:1fr}}@media (width<=640px){.container{padding-inline:20px}.hero__title{font-size:clamp(34px,10vw,42px)}.hero__stats{grid-template-columns:1fr 1fr;padding:20px}.hero__stat{padding-left:20px}.skills__head{flex-direction:column;align-items:flex-start;gap:20px}.contact__socials{gap:10px}.footer__inner{flex-direction:column;align-items:flex-start}.marquee:before,.marquee:after{width:48px}}
