@charset "UTF-8";@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-700.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/space-grotesk-500.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/space-grotesk-600.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/space-grotesk-700.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500.woff2) format("woff2")}:root{--bg: #0a0b0e;--bg-elev: #101319;--bg-elev-2: #141922;--line: #232b38;--line-soft: #1a202a;--text: #e9ecf2;--text-dim: #a6afbe;--text-mute: #6b7482;--accent: #52e6c4;--accent-2: #7aa2ff;--accent-ink: #04140f;--radius: 14px;--radius-lg: 20px;--maxw: 1160px;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-head: "Space Grotesk", "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;--ease: cubic-bezier(.2, .7, .2, 1)}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}img,svg{display:block;max-width:100%}ul{list-style:none;padding:0}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(20px,5vw,40px)}.accent{color:var(--accent)}.eyebrow{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);display:inline-flex;align-items:center;gap:.6em}.eyebrow .idx{color:var(--accent);font-weight:500}.dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent);animation:pulse 2.6s var(--ease) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.btn{--pad-y: .85rem;--pad-x: 1.4rem;display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:var(--pad-y) var(--pad-x);border:1px solid transparent;border-radius:999px;font-family:var(--font-sans);font-size:.95rem;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:transform .25s var(--ease),background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease);white-space:nowrap}.btn--sm{--pad-y: .55rem;--pad-x: 1rem;font-size:.85rem}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--primary:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--accent) 88%,white)}.btn--ghost{background:transparent;color:var(--text);border-color:var(--line)}.btn--ghost:hover{transform:translateY(-2px);border-color:var(--accent);color:var(--accent)}.tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.02em;color:var(--text-dim);padding:.32rem .66rem;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--bg-elev) 60%,transparent)}.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease);will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:none}.nav{position:fixed;inset:0 0 auto;z-index:100;transition:background .3s var(--ease),border-color .3s var(--ease),backdrop-filter .3s var(--ease);border-bottom:1px solid transparent}.nav--scrolled{background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border-bottom-color:var(--line-soft)}.nav__inner{display:flex;align-items:center;justify-content:space-between;height:64px}.brand{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-head);font-weight:700;font-size:1.05rem;letter-spacing:-.01em}.brand__mark{width:12px;height:12px;border-radius:3px;background:var(--accent);box-shadow:0 0 14px color-mix(in srgb,var(--accent) 60%,transparent)}.nav__links{display:flex;align-items:center;gap:2rem}.nav__links a:not(.btn){font-size:.95rem;color:var(--text-dim);position:relative;transition:color .2s var(--ease)}.nav__links a:not(.btn):after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .28s var(--ease)}.nav__links a:not(.btn):hover{color:var(--text)}.nav__links a:not(.btn):hover:after{transform:scaleX(1)}.nav__toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;padding:8px;cursor:pointer}.nav__toggle span{width:22px;height:2px;background:var(--text);border-radius:2px;transition:transform .3s var(--ease),opacity .3s var(--ease)}.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;padding-block:120px 80px}.hero__bg{position:absolute;inset:0;background-image:linear-gradient(to right,var(--line-soft) 1px,transparent 1px),linear-gradient(to bottom,var(--line-soft) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 80% 65% at 50% 40%,#000 30%,transparent 78%);mask-image:radial-gradient(ellipse 80% 65% at 50% 40%,#000 30%,transparent 78%);opacity:.5}.hero__glow{position:absolute;top:-20%;right:-10%;width:60vw;height:60vw;max-width:780px;max-height:780px;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 22%,transparent) 0%,transparent 62%);filter:blur(18px);opacity:.5;animation:drift 16s ease-in-out infinite alternate;pointer-events:none}@keyframes drift{0%{transform:translate(0) scale(1)}to{transform:translate(-6%,6%) scale(1.12)}}.hero__inner{position:relative;z-index:1}.hero__eyebrow{margin-bottom:1.6rem}.hero__title{font-family:var(--font-head);font-weight:700;font-size:clamp(2.6rem,8vw,5.4rem);line-height:1.02;letter-spacing:-.03em;margin-bottom:1.6rem}.hero__lead{max-width:60ch;font-size:clamp(1.05rem,1.6vw,1.3rem);color:var(--text-dim);margin-bottom:2.4rem}.hero__actions{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:3.2rem}.hero__domains{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;font-family:var(--font-mono);font-size:.8rem;letter-spacing:.04em;color:var(--text-mute)}.hero__domains li{display:flex;align-items:center;gap:1.5rem}.hero__domains li:not(:last-child):after{content:"";width:4px;height:4px;border-radius:50%;background:var(--line)}.section{position:relative;padding-block:clamp(76px,10vw,148px)}.section--alt{background:var(--bg-elev);border-block:1px solid var(--line-soft)}.section__head{max-width:720px;margin-bottom:clamp(2.5rem,5vw,4rem)}.section__head .eyebrow{margin-bottom:1.1rem}.section__title{font-family:var(--font-head);font-weight:600;font-size:clamp(1.9rem,4vw,3rem);line-height:1.1;letter-spacing:-.02em}.section__intro{margin-top:1.1rem;color:var(--text-dim);font-size:1.08rem;max-width:60ch}.work{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.4rem}.card{display:flex;flex-direction:column;padding:1.8rem;background:var(--bg-elev);border:1px solid var(--line-soft);border-radius:var(--radius-lg);position:relative;overflow:hidden;transition:transform .35s var(--ease),border-color .35s var(--ease),background .35s var(--ease)}.section--alt .card{background:var(--bg-elev-2)}.card:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:0;transition:opacity .35s var(--ease)}.card:hover{transform:translateY(-4px);border-color:var(--line)}.card:hover:before{opacity:1}.card__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.4rem}.card__idx{font-family:var(--font-mono);font-size:.82rem;color:var(--text-mute)}.card__icon{color:var(--accent)}.card__icon svg{width:26px;height:26px}.card__title{font-family:var(--font-head);font-weight:600;font-size:1.4rem;letter-spacing:-.01em;margin-bottom:.35rem}.card__type{font-size:.85rem;color:var(--accent-2);margin-bottom:1rem}.card__desc{color:var(--text-dim);font-size:.96rem;margin-bottom:1.4rem}.card .tags{margin-bottom:1.5rem}.card__foot{margin-top:auto;padding-top:.4rem}.card__note{font-family:var(--font-mono);font-size:.76rem;letter-spacing:.03em;color:var(--text-mute)}.link{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:.92rem;color:var(--text);transition:color .2s var(--ease),gap .2s var(--ease)}.link .link__arrow{color:var(--accent);transition:transform .25s var(--ease)}.link:hover{color:var(--accent);gap:.6rem}.link:hover .link__arrow{transform:translate(2px,-2px)}.caps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:var(--radius-lg);overflow:hidden}.cap{background:var(--bg);padding:1.8rem;transition:background .3s var(--ease)}.section--alt .cap{background:var(--bg-elev)}.cap:hover{background:var(--bg-elev-2)}.cap__label{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:1.3rem;padding-bottom:1rem;border-bottom:1px solid var(--line-soft)}.cap__list{display:flex;flex-direction:column;gap:.7rem}.cap__list li{color:var(--text-dim);font-size:.95rem;padding-left:1.1rem;position:relative}.cap__list li:before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:1px;background:var(--accent);opacity:.65}.creds{display:flex;flex-direction:column;gap:clamp(2.6rem,5vw,4.2rem)}.subhead{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-mute);margin-bottom:1.6rem}.edu{border-top:1px solid var(--line-soft)}.edu__row{display:grid;grid-template-columns:148px 1fr;gap:1.5rem;padding:1.4rem 0;border-bottom:1px solid var(--line-soft)}.edu__period{font-family:var(--font-mono);font-size:.82rem;color:var(--accent);padding-top:.2rem}.edu__title{font-family:var(--font-head);font-weight:600;font-size:1.14rem;display:flex;align-items:baseline;gap:.65rem;flex-wrap:wrap}.edu__level{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.04em;color:var(--text-mute);border:1px solid var(--line);border-radius:999px;padding:.12rem .55rem}.edu__inst{color:var(--text-dim);margin-top:.25rem}.edu__note{color:var(--text-mute);font-size:.9rem;margin-top:.45rem}.certs{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.4rem}.cert{display:flex;align-items:center;gap:1.3rem;padding:1.5rem 1.7rem;background:var(--bg-elev);border:1px solid var(--line-soft);border-radius:var(--radius);transition:border-color .3s var(--ease),transform .3s var(--ease)}.cert:hover{border-color:var(--accent);transform:translateY(-3px)}.cert__issuer{font-family:var(--font-head);font-weight:700;font-size:1rem;color:var(--accent);padding-right:1.3rem;border-right:1px solid var(--line);white-space:nowrap;align-self:stretch;display:flex;align-items:center}.cert__title{font-weight:600;font-size:.98rem}.cert__note{font-family:var(--font-mono);font-size:.76rem;color:var(--text-mute);margin-top:.25rem}.about{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(2rem,6vw,5rem);align-items:start}.about__head{margin-bottom:0;position:sticky;top:100px}.about__body p{color:var(--text-dim);font-size:1.08rem;margin-bottom:1.3rem}.facts{margin-top:2.4rem;border-top:1px solid var(--line-soft)}.facts__row{display:flex;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--line-soft)}.facts__row dt{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-mute);min-width:130px}.facts__row dd{color:var(--text);font-weight:500}.contact{text-align:center}.contact__inner{max-width:640px;margin-inline:auto}.contact__inner .eyebrow{justify-content:center;margin-bottom:1.2rem}.contact__title{font-family:var(--font-head);font-weight:700;font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-.02em;margin-bottom:1.2rem}.contact__lead{color:var(--text-dim);font-size:1.1rem;margin-bottom:2.4rem}.contact__alt{margin-top:1.6rem;font-size:.95rem;color:var(--text-mute)}.contact__alt a{color:var(--text-dim)}.cform{text-align:left;margin-top:2.2rem;display:grid;gap:1.1rem}.cform__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}.field{display:grid;gap:.45rem}.field__label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-mute)}.field__input{width:100%;padding:.8rem .95rem;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);font-family:var(--font-sans);font-size:.98rem;transition:border-color .2s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease)}.field__input::placeholder{color:var(--text-mute)}.field__input:focus{outline:none;border-color:var(--accent);background:var(--bg-elev-2);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.field__input--error{border-color:#ff6b6b}.field__textarea{resize:vertical;min-height:130px;line-height:1.5}.field__error{font-size:.82rem;color:#ff8b8b}.cform__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.cform__captcha{min-height:65px}.cform__foot{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.cform__foot .btn{min-width:160px}.cform__foot .btn:disabled{opacity:.6;cursor:default;transform:none}.cform__status--error{font-size:.9rem;color:#ff8b8b}.cform__success{margin-top:2.2rem;padding:2.4rem 2rem;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elev);display:grid;gap:.8rem;justify-items:center}.cform__success h3{font-family:var(--font-head);font-size:1.4rem}.cform__success p{color:var(--text-dim)}.cform__success .btn{margin-top:.6rem}.cform__success-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:999px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);font-size:1.4rem;font-weight:700}.footer{border-top:1px solid var(--line-soft);padding-block:2.4rem}.footer__inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.footer__brand{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-head);font-weight:600}.footer__meta{font-family:var(--font-mono);font-size:.78rem;color:var(--text-mute)}.footer__cookie{margin-left:.9rem;padding:0;background:none;border:none;font-family:var(--font-mono);font-size:.78rem;color:var(--text-mute);cursor:pointer;text-decoration:underline;text-underline-offset:2px;transition:color .2s var(--ease)}.footer__cookie:hover{color:var(--text-dim)}.consent{position:fixed;left:50%;bottom:clamp(12px,3vw,28px);transform:translate(-50%);z-index:200;width:min(680px,100vw - 24px);animation:consent-in .4s var(--ease) both}@keyframes consent-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.consent__inner{display:flex;align-items:center;gap:1.4rem;padding:1.1rem 1.3rem;background:color-mix(in srgb,var(--bg-elev) 92%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 18px 50px #00000073}.consent__text{font-size:.86rem;line-height:1.5;color:var(--text-dim)}.consent__link{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.consent__actions{display:flex;gap:.6rem;flex-shrink:0}@media(max-width:620px){.consent__inner{flex-direction:column;align-items:stretch;gap:1rem}.consent__actions{justify-content:flex-end}}@media(max-width:760px){.nav__links{position:fixed;inset:64px 0 auto;flex-direction:column;align-items:stretch;gap:.25rem;padding:1.2rem clamp(20px,5vw,40px) 1.6rem;background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-soft);transform:translateY(-12px);opacity:0;pointer-events:none;transition:opacity .28s var(--ease),transform .28s var(--ease)}.nav__links a:not(.btn){padding:.7rem 0}.nav__links .btn{margin-top:.6rem}.nav--open .nav__links{transform:translateY(0);opacity:1;pointer-events:auto}.nav__toggle{display:flex}.nav--open .nav__toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav--open .nav__toggle span:nth-child(2){opacity:0}.nav--open .nav__toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.about{grid-template-columns:1fr}.about__head{position:static}.edu__row{grid-template-columns:1fr;gap:.4rem}.cform__grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.hero__glow,.dot,.consent{animation:none}*{transition-duration:.01ms!important}}
