:root{--acc: #c6f24e;--bg: #0a0b0d;--panel: #0e0f12;--panel-2: #0c0d10;--text: #f3f3ee;--muted: #a9a9af;--dim: #8d8d94;--faint: #6c6c72;--line: rgba(255, 255, 255, .1);--font-display: "Space Grotesk", system-ui, sans-serif;--font-body: "DM Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);-webkit-font-smoothing:antialiased}::selection{background:var(--acc);color:var(--bg)}@keyframes mq{to{transform:translate(-50%)}}@keyframes pulse{0%,to{opacity:.45}50%{opacity:.8}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}.app{position:relative;background:var(--bg);color:var(--text);font-family:var(--font-body);min-height:100vh}a{color:inherit}[data-reveal]{opacity:0;transform:translateY(40px)}[data-hero]{opacity:0;transform:translateY(24px)}[data-char]{display:inline-block;transform:translateY(115%)}[data-stack]{opacity:0}.nav{position:fixed;top:14px;left:clamp(14px,4vw,40px);right:clamp(14px,4vw,40px);z-index:60;display:flex;align-items:center;justify-content:space-between;padding:12px clamp(16px,2.5vw,26px);pointer-events:auto;border-radius:100px;background:linear-gradient(180deg,#1e202675,#0c0d104d);-webkit-backdrop-filter:blur(9px) saturate(165%);backdrop-filter:url(#glass-distortion) blur(7px) saturate(165%);border:1px solid rgba(255,255,255,.13);box-shadow:0 12px 38px -14px #0000009e,inset 0 1px #fff3,inset 0 -8px 22px -10px #ffffff0d}.nav:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1.4px #ffffff1f}.nav__logo{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--text);font-family:var(--font-display);font-weight:600;font-size:18px;letter-spacing:-.01em;pointer-events:auto}.nav__dot{width:9px;height:9px;border-radius:50%;background:var(--acc);box-shadow:0 0 14px var(--acc)}.nav__links{display:flex;align-items:center;gap:clamp(16px,2.5vw,34px);pointer-events:auto;font-family:var(--font-mono);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase}.nav__link{text-decoration:none;color:var(--dim);transition:color .25s}.nav__link:hover{color:var(--text)}.nav__cta{text-decoration:none;color:var(--bg);background:var(--acc);padding:9px 16px;border-radius:100px;font-weight:500;transition:transform .25s}.nav__cta:hover{transform:translateY(-2px)}.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:140px clamp(20px,4vw,40px) 90px;scroll-margin-top:80px;overflow:hidden}.hero__grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000,transparent 95%);mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000,transparent 95%)}.hero__orb{position:absolute;top:8%;right:-6%;width:46vw;height:46vw;max-width:680px;max-height:680px;border-radius:50%;background:radial-gradient(circle at 50% 50%,var(--acc),transparent 68%);opacity:.5;filter:blur(40px);animation:pulse 7s ease-in-out infinite;pointer-events:none}.hero__inner{position:relative;max-width:1440px;margin:0 auto;width:100%}.hero__eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:30px}.eyebrow__tag{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--acc)}.eyebrow__line{width:46px;height:1px;background:#fff3}.eyebrow__meta{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}.hero__title{margin:0;font-family:var(--font-display);font-weight:600;font-size:clamp(68px,13.5vw,210px);line-height:.86;letter-spacing:-.035em;color:var(--text)}.hero__line{display:block;overflow:hidden;padding-bottom:.04em}.char{display:inline-block}.char--acc{color:var(--acc)}.hero__row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:36px;margin-top:42px}.hero__lead{margin:0;max-width:540px;font-size:clamp(17px,1.5vw,20px);line-height:1.6;color:var(--muted)}.hl{color:var(--text)}.hero__cta-row{display:flex;gap:14px}.btn-primary{display:inline-flex;align-items:center;gap:10px;text-decoration:none;background:var(--acc);color:var(--bg);padding:15px 24px;border-radius:100px;font-weight:500;font-size:15px;transition:transform .3s}.btn-primary:hover{transform:translateY(-3px)}.btn-ghost{display:inline-flex;align-items:center;text-decoration:none;border:1px solid rgba(255,255,255,.16);color:var(--text);padding:15px 24px;border-radius:100px;font-weight:500;font-size:15px;transition:border-color .3s,transform .3s}.btn-ghost:hover{border-color:var(--acc);transform:translateY(-3px)}.hero__scroll{position:absolute;bottom:34px;left:50%;margin-left:-1px;display:flex;flex-direction:column;align-items:center;gap:10px}.hero__scroll-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);writing-mode:vertical-rl}.hero__scroll-bar{width:1px;height:46px;background:linear-gradient(var(--faint),transparent);animation:bob 1.8s ease-in-out infinite}.lanyard{position:absolute;top:58px;right:12%;z-index:8;pointer-events:none;-webkit-user-select:none;user-select:none}.lanyard__group{position:relative;transform-origin:top center;will-change:transform}.lanyard__strap{position:relative;width:26px;height:154px;margin:0 auto;border-radius:3px;overflow:hidden;background:linear-gradient(180deg,var(--acc) 0%,var(--acc) 72%,#10110f 100%);box-shadow:inset 1.5px 0 #0000002e,inset -1.5px 0 #ffffff2e}.lanyard__strap-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--font-mono);font-size:8.5px;letter-spacing:.28em;color:#0a0b0d9e;white-space:nowrap}.lanyard__clip{width:36px;height:15px;margin:-3px auto 0;border-radius:4px;background:linear-gradient(180deg,#e2e2e6,#9a9aa0 60%,#74747a);box-shadow:0 2px 4px #0006;position:relative;z-index:2}.lanyard__ring{width:14px;height:16px;margin:-2px auto 0;border:2.5px solid #b9b9bf;border-top:none;border-radius:0 0 9px 9px;position:relative;z-index:1}.lanyard__badge{pointer-events:auto;cursor:grab;touch-action:none;width:186px;margin:-6px auto 0;padding:16px 16px 14px;border-radius:15px;background:#101216;border:1px solid rgba(255,255,255,.13);box-shadow:0 26px 50px -12px #000000a6,inset 0 1px #ffffff0f;position:relative;z-index:1}.badge__notch{width:50px;height:7px;border-radius:6px;background:#000;margin:0 auto 16px;box-shadow:inset 0 1px 2px #ffffff1f}.badge__avatar{width:66px;height:66px;margin:0 auto 13px;border-radius:50%;border:1px solid rgba(255,255,255,.14);background-color:var(--bg);background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0,rgba(255,255,255,.05) 1px,transparent 1px,transparent 7px);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600;font-size:24px;color:var(--acc)}.badge__name{text-align:center;font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--text)}.badge__role{text-align:center;font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-top:4px}.badge__bars{display:flex;align-items:flex-end;gap:2px;height:22px;margin:13px 0 9px;padding-top:11px;border-top:1px solid rgba(255,255,255,.08)}.badge__drag{text-align:center;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.18em;color:var(--acc)}.marquee{border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07);overflow:hidden;padding:26px 0;background:var(--panel-2)}.marquee__track{display:flex;width:max-content;animation:mq 26s linear infinite;white-space:nowrap}.marquee__group{display:flex;gap:30px;padding-right:30px;font-family:var(--font-display);font-size:clamp(24px,3vw,40px);font-weight:500;align-items:center;color:#26282e}.marquee__sep{color:var(--acc)}.section{max-width:1440px;margin:0 auto}.sec-head{display:flex;align-items:center;gap:14px;margin-bottom:54px}.sec-head__tag{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--acc)}.sec-head__line{flex:1;height:1px;background:var(--line)}.about{padding:clamp(90px,12vw,160px) clamp(20px,4vw,40px);scroll-margin-top:80px}.about__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:clamp(40px,6vw,90px);align-items:start}.about__lead{margin:0;font-family:var(--font-display);font-weight:500;font-size:clamp(28px,3.4vw,46px);line-height:1.22;letter-spacing:-.02em;color:var(--text)}.about__lead .acc{color:var(--acc)}.about__body{display:flex;flex-direction:column;gap:26px;padding-top:8px}.about__body p{margin:0;font-size:17px;line-height:1.75;color:var(--muted)}.about__stats{display:flex;gap:36px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.08);margin-top:6px;padding-top:26px}.stat__num{font-family:var(--font-display);font-size:30px;font-weight:600;color:var(--text)}.stat__label{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-top:4px}.stack{padding:0 clamp(20px,4vw,40px) clamp(90px,12vw,160px);scroll-margin-top:80px}.stack__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));gap:18px}.stack__card{border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:28px;background:var(--panel);transition:border-color .3s,transform .3s}.stack__card:hover{border-color:#fff3;transform:translateY(-4px)}.stack__card-title{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc);margin-bottom:18px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font-size:14px;color:#cfcfd4;border:1px solid rgba(255,255,255,.1);padding:6px 12px;border-radius:100px}.projects{padding:0 clamp(20px,4vw,40px) clamp(90px,12vw,160px);scroll-margin-top:80px}.projects__head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:54px}.projects__head-left{display:flex;align-items:center;gap:14px;flex:1;min-width:260px}.projects__note{font-family:var(--font-mono);font-size:12px;color:var(--faint)}.stack-wrap{position:relative;padding-bottom:6vh}.proj-card{position:sticky;top:var(--top, 96px);display:flex;flex-wrap:wrap;align-items:center;gap:clamp(28px,4.5vw,64px);background:var(--panel);border:1px solid rgba(255,255,255,.1);border-radius:26px;padding:clamp(26px,3.5vw,44px);margin-bottom:34px;box-shadow:0 20px 55px #00000080;transform-origin:center top;will-change:transform}.proj-card--l{flex-direction:row}.proj-card--r{flex-direction:row-reverse}.proj-card__media{flex:1 1 460px;min-width:280px;position:relative;display:block;aspect-ratio:16 / 10;border-radius:20px;overflow:hidden;border:1px solid rgba(255,255,255,.1);background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent 11px);transition:border-color .35s,transform .35s}.proj-card__media:hover{border-color:var(--acc);transform:translateY(-4px)}.proj-card__media-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:12px;color:#54555b;z-index:0}.proj-card__img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:top center;z-index:1}.glare{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.gh-shine{position:absolute;top:0;left:0;width:55%;height:100%;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.16) 50%,transparent 70%);transform:translate(-180%) skew(-14deg);transition:transform .9s cubic-bezier(.2,.7,.2,1)}.proj-card__media:hover .gh-shine{transform:translate(320%) skew(-14deg)}.proj-card__body{flex:1 1 340px;min-width:260px}.proj-card__meta{display:flex;align-items:center;gap:12px;margin-bottom:16px}.proj-card__num{font-family:var(--font-mono);font-size:13px;color:var(--acc)}.proj-card__sep{width:30px;height:1px;background:#fff3}.proj-card__kicker{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.proj-card__title{margin:0 0 14px;font-family:var(--font-display);font-weight:600;font-size:clamp(28px,3.4vw,42px);letter-spacing:-.02em;line-height:1.05;color:var(--text)}.proj-card__desc{margin:0 0 22px;font-size:16.5px;line-height:1.65;color:var(--muted);max-width:440px}.proj-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}.proj-tag{font-family:var(--font-mono);font-size:11.5px;color:#7e7e85;border:1px solid rgba(255,255,255,.1);padding:5px 10px;border-radius:6px}.proj-link{display:inline-flex;align-items:center;gap:9px;text-decoration:none;font-family:var(--font-mono);font-size:13px;letter-spacing:.04em;color:var(--text);border-bottom:1px solid var(--acc);padding-bottom:5px;transition:gap .3s,color .3s}.proj-link:hover{gap:15px;color:var(--acc)}.certs{padding:clamp(80px,11vw,150px) clamp(20px,4vw,40px);scroll-margin-top:80px}.certs__intro{margin:0 0 46px;font-size:16px;color:var(--dim);max-width:480px}.certs__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));gap:18px}.cert{position:relative;display:block;text-decoration:none;border:1px solid rgba(255,255,255,.1);border-radius:18px;overflow:hidden;background:var(--panel);transition:border-color .35s,transform .35s}.cert:hover{border-color:var(--acc);transform:translateY(-4px)}.cert--empty{border:1px dashed rgba(255,255,255,.14);background:transparent}.cert__bar{height:6px;background:var(--acc)}.cert__bar--dim{background:#ffffff14}.cert__inner{padding:26px 26px 28px}.cert__top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.cert__icon{width:46px;height:46px;border-radius:12px;border:1px solid var(--acc);background:#c6f24e1a;display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--acc)}.cert__icon--empty{border:1px solid rgba(255,255,255,.12);color:#54555b;background:transparent}.cert__arrow{font-size:17px;color:var(--faint);transition:color .3s}.cert:hover .cert__arrow{color:var(--acc)}.cert__kicker{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:7px}.cert__kicker--dim{color:var(--faint)}.cert__title{margin:0 0 8px;font-family:var(--font-display);font-weight:600;font-size:21px;letter-spacing:-.01em;color:var(--text)}.cert__title--dim{color:var(--faint)}.cert__sub{font-family:var(--font-mono);font-size:12px;color:var(--acc)}.cert__sub--dim{color:#54555b}.contact{position:relative;border-top:1px solid rgba(255,255,255,.08);padding:clamp(90px,12vw,170px) clamp(20px,4vw,40px) 60px;scroll-margin-top:80px;overflow:hidden}.contact__glow{position:absolute;bottom:-30%;left:50%;transform:translate(-50%);width:80vw;height:50vw;max-width:900px;max-height:560px;border-radius:50%;background:radial-gradient(circle,var(--acc),transparent 70%);opacity:.13;filter:blur(50px);pointer-events:none}.contact__inner{position:relative;max-width:1440px;margin:0 auto}.contact__tag{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--acc);margin-bottom:30px}.contact__title{margin:0;font-family:var(--font-display);font-weight:600;font-size:clamp(44px,8vw,118px);line-height:.95;letter-spacing:-.03em;color:var(--text)}.contact__title .acc{color:var(--acc)}.contact__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr));gap:clamp(34px,5vw,72px);margin-top:54px;align-items:start}.contact__lead{margin:0 0 26px;font-size:17px;line-height:1.7;color:var(--muted);max-width:400px}.contact__mail{font-family:var(--font-display);font-size:clamp(20px,2.4vw,30px);font-weight:500;color:var(--text);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25);padding-bottom:6px;transition:border-color .3s,color .3s}.contact__mail:hover{border-color:var(--acc);color:var(--acc)}.contact__socials{display:flex;gap:12px;flex-wrap:wrap;font-family:var(--font-mono);font-size:13px;margin-top:30px}.social{text-decoration:none;color:#cfcfd4;border:1px solid rgba(255,255,255,.14);padding:11px 18px;border-radius:100px;transition:border-color .3s,transform .3s}.social:hover{border-color:var(--acc);transform:translateY(-2px)}.form{display:flex;flex-direction:column;gap:15px;background:var(--panel);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:clamp(22px,3vw,32px)}.form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:15px}.field{display:flex;flex-direction:column;gap:7px}.field__label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}.field input,.field textarea{width:100%;background:var(--bg);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:13px 14px;color:var(--text);font-family:var(--font-body);font-size:15px;outline:none;transition:border-color .25s}.field textarea{line-height:1.5;resize:vertical}.field input:focus,.field textarea:focus{border-color:var(--acc)}.form__submit{margin-top:4px;background:var(--acc);color:var(--bg);border:none;border-radius:100px;padding:15px 22px;font-family:var(--font-display);font-weight:600;font-size:15px;cursor:pointer;transition:transform .25s}.form__submit:hover{transform:translateY(-2px)}.form__status{min-height:18px;font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;color:var(--acc);text-align:center}.footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;margin-top:90px;padding-top:26px;border-top:1px solid rgba(255,255,255,.08);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}@media (max-width: 860px){.lanyard{display:none}}@media (max-width: 720px){.nav__link{display:none}.nav{padding-left:18px;padding-right:18px}.hero{padding-top:120px;padding-bottom:64px}}@media (max-width: 600px){.proj-card{flex-direction:column;gap:22px;top:72px}.proj-card>*{flex-basis:100%;width:100%;min-width:0}}@media (max-width: 440px){.contact__mail{font-size:19px;overflow-wrap:anywhere;word-break:break-word}.nav__logo{font-size:16px}}.nav__lang{pointer-events:auto;cursor:pointer;background:transparent;border:1px solid rgba(255,255,255,.18);color:#cfcfd4;font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:8px 13px;border-radius:100px;transition:border-color .25s,color .25s}.nav__lang:hover{border-color:var(--acc);color:var(--text)}
