@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-700-normal-D3wTyLJW.woff)format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-latin-400-normal-cpxAROuN.woff2)format("woff2"),url(/assets/poppins-latin-400-normal-BOb3E3N0.woff)format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/poppins-latin-500-normal-C8OXljZJ.woff2)format("woff2"),url(/assets/poppins-latin-500-normal-DGXqpDMm.woff)format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/poppins-latin-600-normal-zEkxB9Mr.woff2)format("woff2"),url(/assets/poppins-latin-600-normal-BJdTmd5m.woff)format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/poppins-latin-700-normal-Qrb0O0WB.woff2)format("woff2"),url(/assets/poppins-latin-700-normal-BVuQR_eA.woff)format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/poppins-latin-800-normal-Bd8-pIP1.woff2)format("woff2"),url(/assets/poppins-latin-800-normal-YoItoZZV.woff)format("woff")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141827;--glow-warm:#802c249e;--glow-warm-soft:#6e26286b;--glow-cool:#242e54d9;--surface:#1a2238;--surface-2:#212a46;--border:#9daaf22e;--text:#f2f3f8;--text-muted:#aab1c7;--quote-dim:#f2f3f829;--accent:#ff6a3d;--accent-text:#ff7d55;--on-accent:#1d0f0a;--lavender:#9daaf2;--line:#9daaf280;--nav-bg:#141827d9;--shadow:0 14px 34px #00000052;--navy:#1a2238;--navy-deep:#121a30;--on-navy:#f2f3f8;--on-navy-muted:#b6bdd4;--font-sans:"Poppins", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--container:1100px}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f2ee;--glow-warm:#ff6a3d29;--glow-warm-soft:#ff6a3d14;--glow-cool:#9daaf24d;--surface:#fff;--surface-2:#f1eef6;--border:#1a22381f;--text:#1a2238;--text-muted:#4f5875;--quote-dim:#1a223824;--accent-text:#c2410c;--lavender:#5263d1;--line:#5263d173;--nav-bg:#ffffffe0;--shadow:0 14px 34px #1a22381a}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:88px}body{background:var(--bg);min-height:100vh;color:var(--text);font:400 1rem/1.65 var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;overflow-x:hidden}body:before{content:"";z-index:-1;background:radial-gradient(75vw 75vw at -10% -12%, var(--glow-warm), transparent 62%), radial-gradient(55vw 55vw at 108% 45%, var(--glow-warm-soft), transparent 65%), radial-gradient(60vw 60vw at 30% 115%, var(--glow-cool), transparent 60%);position:fixed;inset:0}h1,h2,h3,p,ul,ol,figure,blockquote{margin:0}ul,ol{padding:0;list-style:none}a{color:var(--accent-text);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}img,svg{display:block}img{max-width:100%}button,input,textarea{font:inherit}:focus-visible{outline:2px solid var(--lavender);outline-offset:3px;border-radius:4px}main:focus{outline:none}.skip-link{z-index:100;background:var(--accent);color:var(--on-accent);border-radius:6px;padding:8px 16px;font-weight:600;position:absolute;top:-100px;left:16px}.skip-link:focus{top:16px}.bracket{color:var(--accent-text)}.container{width:min(var(--container), 100% - 32px);margin-inline:auto}.can-reveal .reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(26px)}.can-reveal .reveal[data-visible]{opacity:1;transform:none}.button{cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;padding:12px 22px;font-size:.95rem;font-weight:600;line-height:1.3;transition:transform .15s,box-shadow .15s,background-color .15s;display:inline-flex}.button:hover{text-decoration:none;transform:translateY(-2px)}.button svg{font-size:1.15em}.button--primary{background:var(--accent);color:var(--on-accent);box-shadow:0 10px 26px #ff6a3d47}.button--primary:hover{box-shadow:0 14px 30px #ff6a3d61}.button--dark{background:var(--navy);color:var(--on-navy);border-color:#9daaf247}.button--small{padding:9px 16px;font-size:.875rem}.scroll-progress{z-index:70;background:var(--accent);transform-origin:0;width:100%;height:4px;position:fixed;top:0;left:0;transform:scaleX(0)}.navbar{z-index:60;pointer-events:none;justify-content:center;padding:0 12px;display:flex;position:fixed;top:16px;left:0;right:0}.navbar__pill{border:1px solid var(--border);background:var(--nav-bg);box-shadow:var(--shadow);font-family:var(--font-mono);pointer-events:auto;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:999px;align-items:center;gap:6px;padding:6px 8px 6px 14px;display:flex}.navbar__links{gap:2px;display:flex}.navbar__link{color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:7px 10px;font-size:.875rem;transition:color .15s;display:block}.navbar__link:hover{color:var(--text);text-decoration:none}.navbar__link .bracket{opacity:0;transition:opacity .2s}.navbar__link[aria-current]{color:var(--text);font-weight:700}.navbar__link[aria-current] .bracket{opacity:1}.navbar__brand,.navbar__menu-button{display:none}.lang-switch{background:var(--accent);width:60px;height:30px;color:var(--on-accent);font-family:var(--font-mono);cursor:pointer;border:0;border-radius:999px;flex-shrink:0;margin-left:8px;font-size:.72rem;font-weight:700;position:relative}.lang-switch__label{position:absolute;top:50%;left:10px;transform:translateY(-50%)}.lang-switch__knob{background:#fff;border-radius:50%;width:22px;height:22px;transition:left .25s;position:absolute;top:4px;left:calc(100% - 26px);box-shadow:0 1px 4px #00000040}.lang-switch[data-lang=en] .lang-switch__label{left:auto;right:10px}.lang-switch[data-lang=en] .lang-switch__knob{left:4px}@media (width<=899px){.navbar__pill{border-radius:24px;flex-wrap:wrap;width:100%;max-width:560px}.navbar__brand{color:var(--text);margin-right:auto;font-weight:700;display:block}.navbar__brand:hover{text-decoration:none}.navbar__menu-button{width:38px;height:38px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;font-size:1.35rem;display:inline-grid}.navbar__links{flex-direction:column;order:5;width:100%;padding:6px 0 8px;display:none}.navbar__pill.is-open .navbar__links{display:flex}.navbar__link{padding:10px 8px;font-size:1rem}}.rail{display:none}@media (width>=1240px){.rail{z-index:40;flex-direction:column;align-items:center;gap:18px;display:flex;position:fixed}.rail--left{top:0;left:36px}.rail--left:before{content:"";background:var(--line);width:1.5px;height:40vh}.rail__socials{flex-direction:column;gap:16px;font-size:1.3rem;display:flex}.rail__socials a{color:var(--accent-text);transition:transform .15s;display:block}.rail__socials a:hover{transform:translateY(-2px)}.rail--right{bottom:88px;right:36px}.rail--right:after{content:"";background:var(--line);width:1.5px;height:26vh}.rail__email{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.08em;writing-mode:vertical-rl;font-size:.85rem;transition:color .15s}.rail__email:hover{color:var(--accent-text);text-decoration:none}}.theme-toggle{z-index:50;border:1px solid var(--border);background:var(--nav-bg);width:46px;height:46px;color:var(--text);box-shadow:var(--shadow);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:50%;place-items:center;font-size:1.25rem;transition:transform .15s;display:grid;position:fixed;bottom:22px;right:22px}.theme-toggle:hover{transform:rotate(-15deg)}@media (width>=1240px){.theme-toggle{right:20px}}.hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100svh;padding:120px 16px 72px;display:flex}.hero__avatar{aspect-ratio:1;object-fit:cover;border-radius:50%;width:clamp(180px,22vw,260px);height:auto;margin-bottom:8px;box-shadow:0 0 0 6px #ffffff0a,0 24px 60px #0006}:root[data-theme=light] .hero__avatar{box-shadow:0 0 0 6px #fff,0 20px 50px #1a223829}.hero__title{letter-spacing:-.02em;font-size:clamp(2.2rem,4.6vw,3.5rem);font-weight:800;line-height:1.1}.hero__wave{transform-origin:70% 70%;animation:2.6s ease-in-out .6s infinite wave;display:inline-block}@keyframes wave{0%,60%,to{transform:rotate(0)}10%,30%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}.hero__role{font-size:clamp(1.35rem,2.6vw,2rem);font-weight:700}.hero__intro{max-width:62ch;color:var(--text-muted);font-size:1.05rem}.hero__actions{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:10px;display:flex}.hero__socials{gap:22px;margin-top:6px;font-size:1.4rem;display:flex}.hero__socials a{color:var(--accent-text)}@media (width>=1240px){.hero__socials{display:none}}.scroll-hint{border:2px solid var(--text-muted);opacity:.8;border-radius:14px;justify-content:center;width:26px;height:40px;margin-top:26px;padding-top:7px;display:flex}.scroll-hint__wheel{background:var(--text-muted);border-radius:2px;width:3px;height:8px;animation:1.8s ease-in-out infinite wheel}@keyframes wheel{0%{opacity:1;transform:translateY(0)}70%{opacity:0;transform:translateY(12px)}to{opacity:0;transform:translateY(0)}}.quote-band{background:linear-gradient(180deg, #1f2948, var(--navy) 70%);color:var(--on-navy);text-align:center;clip-path:polygon(0 0,100% 7%,100% 100%,0 93%);padding:clamp(96px,13vw,160px) 24px;position:relative;overflow:hidden}.quote-band__code{color:var(--lavender);font:500 clamp(.95rem, 1.7vw, 1.35rem) / 1.7 var(--font-mono);white-space:pre;opacity:.1;filter:blur(1.2px);pointer-events:none;justify-content:center;align-items:center;margin:0;display:flex;position:absolute;inset:-20% -10%;transform:rotate(-8deg)}.quote-band__text p{letter-spacing:-.015em;max-width:20ch;margin:0 auto;font-size:clamp(2rem,5vw,3.6rem);font-weight:800;line-height:1.12;position:relative}.quote-band__author{color:var(--on-navy-muted);margin-top:22px;font-weight:500;position:relative}.reveal-quote{text-align:center;padding:clamp(80px,12vw,150px) 24px}.reveal-quote__text p{letter-spacing:-.025em;max-width:17ch;margin:0 auto;font-size:clamp(2.3rem,6.4vw,4.8rem);font-weight:800;line-height:1.06}.reveal-quote__text span{color:var(--quote-dim);transition:color .35s}.reveal-quote__text span.is-lit{color:var(--text)}.reveal-quote__author{color:var(--text-muted);font-family:var(--font-mono);margin-top:24px;font-size:.9rem}.connector{width:min(var(--container), 100% - 32px);height:clamp(70px,11vw,140px);margin-inline:auto}.connector svg{width:100%;height:100%;overflow:visible}.connector path{fill:none;stroke:var(--line);stroke-width:1.5px}.section{padding-block:clamp(64px,9vw,112px)}.section-heading{margin-bottom:clamp(32px,5vw,52px)}.section-heading--center{text-align:center}.section-heading__label{font-size:1.05rem;font-weight:500}.section-heading__title{margin-top:4px;font-size:clamp(1.7rem,3.4vw,2.4rem);font-weight:700;line-height:1.2}.timeline{gap:28px;display:grid;position:relative}.timeline:before{content:"";background:var(--line);width:1.5px;position:absolute;top:8px;bottom:8px;left:27px}.job{grid-template-columns:56px minmax(0,1fr);gap:22px;display:grid;position:relative}.job__logo{object-fit:cover;width:56px;height:56px;box-shadow:0 0 0 4px var(--bg), 0 0 0 6px var(--accent);background:#fff;border-radius:50%;align-self:start;position:sticky;top:100px}.job__card{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:16px;padding:clamp(20px,3vw,28px)}.job__header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;display:flex}.job__company{font-size:1.2rem;font-weight:700;line-height:1.35}.job__company a{color:var(--text)}.job__company a:hover{color:var(--accent-text);text-decoration:none}.job__company-icon{vertical-align:-.1em;opacity:.55;margin-left:4px;display:inline-block}.job__period{color:var(--accent-text);font-family:var(--font-mono);white-space:nowrap;font-size:.85rem}.job__role{color:var(--lavender);margin-top:4px;font-weight:600}.job__location{color:var(--text-muted);font-size:.875rem}.job__tasks{color:var(--text-muted);gap:10px;margin-top:16px;font-size:.95rem;display:grid}.job__tasks li{padding-left:22px;position:relative}.job__tasks li:before{content:"▹";color:var(--accent-text);position:absolute;left:0}.job__tasks strong{color:var(--text);font-weight:600}@media (width<=559px){.timeline:before{left:19px}.job{grid-template-columns:40px minmax(0,1fr);gap:14px}.job__logo{width:40px;height:40px}}.skills{grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));align-items:start;gap:24px;display:grid}.skill-card{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:18px;padding:clamp(20px,3vw,26px)}.skill-card__title{text-align:center;margin-bottom:18px;font-size:1.05rem;font-weight:600}.skill-card__tiles{grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:12px;display:grid}.tech{--brand:var(--lavender)}.tech--tile{border:1.5px solid color-mix(in srgb, var(--brand) 60%, transparent);background:color-mix(in srgb, var(--brand) 9%, var(--surface));text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:100%;min-height:92px;padding:14px 6px 10px;transition:transform .15s;display:flex}.tech--tile:hover{transform:translateY(-3px)}.tech--tile .tech__icon{color:var(--brand);font-size:1.9rem}.tech--tile .tech__name{font-size:.72rem;font-weight:500;line-height:1.25}.tech--chip{border:1px solid color-mix(in srgb, var(--brand) 55%, transparent);background:color-mix(in srgb, var(--brand) 10%, transparent);border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;font-weight:500;display:inline-flex}.tech--chip .tech__icon{color:var(--brand)}.projects{gap:36px;display:grid}.project{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:20px;display:grid;overflow:hidden}@media (width>=860px){.project{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}.project:nth-child(2n) .project__media{order:-1}}.project__info{flex-direction:column;align-items:flex-start;gap:12px;padding:clamp(24px,4vw,40px);display:flex}.project__org{color:var(--text-muted);align-items:center;gap:10px;font-size:.85rem;font-weight:500;display:flex}.project__org img{background:#fff;border-radius:50%;width:28px;height:28px}.project__name{font-size:clamp(1.35rem,2.4vw,1.7rem);font-weight:700;line-height:1.2}.project__role{color:var(--lavender);margin-top:-6px;font-weight:600}.project__summary{color:var(--text-muted)}.project__tech{flex-wrap:wrap;gap:8px;display:flex}.project__media{background:radial-gradient(circle at 30% 20%, #ff6a3d2e, transparent 60%), var(--surface-2);align-items:center;padding:clamp(18px,3vw,32px);display:flex}.project__media img{aspect-ratio:16/10;object-fit:cover;object-position:top;width:100%;height:auto;box-shadow:var(--shadow);border-radius:12px}.marquee{padding:48px 0;overflow:hidden}.marquee__band{color:#1a2238;background:#9daaf2;padding:14px 0;font-size:clamp(1rem,2vw,1.3rem);font-weight:700;display:block;transform:rotate(-3deg)scale(1.06)}.marquee__band:hover{text-decoration:none}.marquee__band .bracket{color:#b33a0e}.marquee__track{width:max-content;animation:42s linear infinite marquee;display:flex}.marquee__band:hover .marquee__track{animation-play-state:paused}.marquee__group{display:flex}.marquee__item{white-space:nowrap;padding:0 30px}@keyframes marquee{to{transform:translate(-50%)}}.about{gap:40px;display:grid}@media (width>=960px){.about{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start}}.about__summary{color:var(--text-muted);font-size:1.05rem;line-height:1.8}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:28px;display:grid}.stat{border:1px solid var(--border);background:var(--surface);border-radius:14px;flex-direction:column;gap:2px;padding:16px 18px;display:flex}.stat__value{color:var(--accent-text);font-size:clamp(1.1rem,2vw,1.35rem);font-weight:800;line-height:1.3}.stat__label{color:var(--text-muted);font-size:.82rem;line-height:1.45}.code-card{background:var(--navy-deep);color:#e3e7f5;box-shadow:var(--shadow);border:1.5px solid #9daaf28c;border-radius:16px;overflow:hidden}.code-card__bar{color:#8e97b8;font:.8rem var(--font-mono);border-bottom:1px solid #9daaf229;align-items:center;gap:12px;padding:12px 16px;display:flex}.code-card__dots{gap:6px;display:flex}.code-card__dots i{background:#ff5f57;border-radius:50%;width:11px;height:11px}.code-card__dots i:nth-child(2){background:#febc2e}.code-card__dots i:nth-child(3){background:#28c840}.code-card__body{font:.88rem/1.8 var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:20px 22px 24px;overflow-x:auto}.tok-keyword{color:#c792ea}.tok-variable{color:#82aaff}.tok-property{color:#89ddff}.tok-string{color:#c3e88d}.tok-function{color:#ffcb6b}.tok-comment{color:#6f7898;font-style:italic}.code-caret{vertical-align:-.2em;background:var(--accent);width:8px;height:1.1em;margin-left:1px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.contact{gap:32px;display:grid}@media (width>=960px){.contact{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}.contact__form{gap:16px;display:grid}.field{gap:6px;display:grid}.field label{color:var(--text-muted);font-size:.875rem;font-weight:500}.field input,.field textarea{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:10px;padding:13px 16px;transition:border-color .15s,box-shadow .15s}.field textarea{resize:vertical;min-height:150px}.field input:focus,.field textarea:focus{border-color:var(--lavender);outline:none;box-shadow:0 0 0 3px #9daaf240}.contact__submit{justify-self:start}.contact__hint,.contact__direct{color:var(--text-muted);font-size:.875rem}.footer{background:var(--navy);color:var(--on-navy-muted);margin-top:48px;padding:28px 16px;font-size:.9rem}.footer__inner{width:min(var(--container), 100% - 72px);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-inline:auto;display:flex}.footer__socials{gap:18px;font-size:1.2rem;display:flex}.footer__socials a{color:#ff8a62}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}
