*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Manrope,Inter,Segoe UI,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}.page{--accent: #38bdf8;--accent-2: #6366f1;--gradient: linear-gradient(135deg, #38bdf8, #6366f1);--bg: #070e1f;--bg-2: #0c1628;--surface: rgba(255, 255, 255, .03);--surface-2: rgba(255, 255, 255, .06);--border: rgba(148, 163, 184, .1);--border-hover: rgba(56, 189, 248, .45);--text: #e2e8f0;--text-muted: #94a3b8;--text-dim: #64748b;--nav-bg: rgba(7, 14, 31, .8);--card-bg: rgba(255, 255, 255, .025);--input-bg: rgba(255, 255, 255, .04);--shadow-glow: 0 8px 32px rgba(56, 189, 248, .12);min-height:100vh;background:var(--bg);color:var(--text);overflow-x:hidden;transition:background .35s ease,color .35s ease}.page.light-mode{--bg: #f3f6ff;--bg-2: #eaeeff;--surface: rgba(255, 255, 255, .8);--surface-2: rgba(255, 255, 255, .95);--border: rgba(99, 102, 241, .12);--border-hover: rgba(56, 189, 248, .55);--text: #0f172a;--text-muted: #475569;--text-dim: #94a3b8;--nav-bg: rgba(243, 246, 255, .85);--card-bg: #ffffff;--input-bg: #ffffff;--shadow-glow: 0 8px 32px rgba(56, 189, 248, .1)}.page{--skeleton-base: rgba(255, 255, 255, .05);--skeleton-shine: rgba(255, 255, 255, .11)}.page.light-mode{--skeleton-base: rgba(0, 0, 0, .06);--skeleton-shine: rgba(0, 0, 0, .11)}.skeleton{background:linear-gradient(90deg,var(--skeleton-base) 25%,var(--skeleton-shine) 50%,var(--skeleton-base) 75%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:6px;flex-shrink:0}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.nav{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:1rem;padding:0 clamp(1.25rem,6vw,4rem);height:60px;background:var(--nav-bg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border)}.nav__logo{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:.9rem;color:var(--text);letter-spacing:-.01em;flex-shrink:0}.nav__logo-mark{width:32px;height:32px;border-radius:9px;background:var(--gradient);display:grid;place-items:center;color:#040a15;font-weight:900;font-size:.7rem;letter-spacing:.5px;flex-shrink:0}.nav__links{display:flex;align-items:center;gap:.2rem;margin-left:auto}.nav__links a{padding:.4rem .85rem;border-radius:8px;font-size:.85rem;font-weight:600;color:var(--text-muted);transition:color .2s,background .2s}.nav__links a:hover{color:var(--text);background:var(--surface-2)}.nav__link--cta{background:var(--gradient)!important;color:#040a15!important;padding:.4rem 1.05rem!important;border-radius:8px!important}.nav__link--cta:hover{opacity:.88}.theme-toggle{width:38px;height:21px;border-radius:999px;border:1.5px solid var(--border);background:var(--surface);cursor:pointer;padding:0;position:relative;transition:border-color .2s;flex-shrink:0}.theme-toggle:hover{border-color:var(--border-hover)}.theme-toggle:after{content:"";position:absolute;width:15px;height:15px;border-radius:50%;background:var(--text-dim);top:2px;left:2px;transition:left .25s ease,background .25s ease}.page.light-mode .theme-toggle:after{left:calc(100% - 17px);background:var(--accent)}.nav__actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.lang-switcher{display:flex;align-items:center;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2px}.lang-btn{padding:.2rem .5rem;border-radius:6px;border:none;background:transparent;color:var(--text-muted);font-size:.72rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:color .15s,background .15s;line-height:1}.lang-btn:hover{color:var(--text);background:var(--surface-2)}.lang-btn--active{background:var(--gradient);color:#040a15!important}.lang-switcher--mobile{margin-top:.5rem;align-self:flex-start}.hero{padding:clamp(3.5rem,8vw,6rem) clamp(1.25rem,6vw,4rem) clamp(3rem,6vw,5rem);display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 55% at 50% 0%,rgba(56,189,248,.13) 0%,transparent 70%),radial-gradient(ellipse 50% 40% at 90% 70%,rgba(99,102,241,.09) 0%,transparent 70%),radial-gradient(ellipse 40% 30% at 10% 80%,rgba(56,189,248,.06) 0%,transparent 70%);pointer-events:none}.hero__intro{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:2rem;z-index:1}.avatar-ring{padding:3px;border-radius:50%;background:var(--gradient);box-shadow:0 0 0 1px var(--border),0 20px 50px #38bdf847;display:block;line-height:0}.avatar{width:172px;height:172px;border-radius:50%;-o-object-fit:cover;object-fit:cover;display:block;border:3px solid var(--bg)}.hero__content{position:relative;z-index:1;max-width:640px;width:100%}.eyebrow{display:inline-flex;align-items:center;gap:.4rem;text-transform:uppercase;letter-spacing:.22em;font-size:.7rem;font-weight:700;color:var(--accent);background:#38bdf817;border:1px solid rgba(56,189,248,.22);border-radius:999px;padding:.32rem .9rem;margin:0 0 1.2rem}.eyebrow__cursor{animation:blink .9s step-start infinite;margin-left:1px}.name__cursor{animation:blink .9s step-start infinite;-webkit-text-fill-color:var(--accent);margin-left:2px;font-weight:300}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero__content h1{font-size:clamp(2.6rem,5vw,4rem);font-weight:800;line-height:1.1;letter-spacing:-.03em;margin:0 0 1rem;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{font-size:1.05rem;font-weight:500;color:var(--text-muted);margin:0 0 .875rem;line-height:1.65}.summary{font-size:.945rem;line-height:1.8;color:var(--text-dim);max-width:520px;margin:0 auto}.hero__actions{margin-top:2rem;display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.65rem;border-radius:10px;font-weight:600;font-size:.875rem;text-decoration:none;cursor:pointer;border:none;font-family:inherit;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease}.btn:hover{transform:translateY(-2px)}.btn--primary{background:var(--gradient);color:#040a15;box-shadow:0 6px 20px #38bdf84d}.btn--primary:hover{box-shadow:0 10px 28px #38bdf86b}.btn--ghost{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn--ghost:hover{border-color:var(--border-hover);background:var(--surface-2)}.stats{margin-top:2.5rem;display:flex;justify-content:center;border:1px solid var(--border);border-radius:16px;background:var(--surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);overflow:hidden;max-width:500px;margin-left:auto;margin-right:auto;width:100%;position:relative;z-index:1}.stats>div{flex:1;padding:1.2rem 1rem;position:relative}.stats>div+div:before{content:"";position:absolute;left:0;top:22%;height:56%;width:1px;background:var(--border)}.stats h3{margin:0;font-size:1.6rem;font-weight:800;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stats p{margin:.2rem 0 0;font-size:.7rem;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.09em}main{padding:clamp(2.5rem,5vw,4.5rem) clamp(1.25rem,6vw,4rem) clamp(3rem,6vw,6rem)}.section{margin:0 auto 5rem;max-width:860px}.section--alt{padding:0;background:transparent;overflow:visible}.section__header{text-align:center;margin-bottom:2.75rem}.section__header h2{margin:0 0 .5rem;font-size:1.85rem;font-weight:800;letter-spacing:-.02em;color:var(--text)}.section__header p{margin:0 0 1.1rem;color:var(--text-muted);font-size:.95rem}.section__header:after{content:"";display:block;width:36px;height:3px;background:var(--gradient);border-radius:2px;margin:0 auto}.timeline{display:flex;flex-direction:column;gap:.875rem;position:relative;padding-left:2.25rem}.timeline:before{content:"";position:absolute;left:5px;top:18px;bottom:18px;width:2px;background:linear-gradient(to bottom,var(--accent),var(--accent-2),transparent);border-radius:2px}.timeline__item{position:relative;display:flex;justify-content:space-between;align-items:flex-start;background:var(--card-bg);border:1px solid var(--border);border-radius:14px;padding:1.4rem 1.6rem;transition:border-color .25s ease,box-shadow .25s ease}.timeline__item:before{content:"";position:absolute;left:-2.1rem;top:1.5rem;width:12px;height:12px;border-radius:50%;background:var(--gradient);border:2.5px solid var(--bg);box-shadow:0 0 0 1px #38bdf866}.timeline__item:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow)}.timeline__item h3{margin:0 0 .3rem;font-size:.975rem;font-weight:700;color:var(--text)}.muted{color:var(--text-muted);margin:.22rem 0 0;font-size:.85rem;line-height:1.55}.pill{background:#38bdf81a;color:var(--accent);border:1px solid rgba(56,189,248,.22);padding:.28rem .8rem;border-radius:999px;font-weight:700;font-size:.78rem;white-space:nowrap;flex-shrink:0;margin-left:1rem;align-self:flex-start}.skills{display:grid;gap:.875rem;grid-template-columns:repeat(auto-fill,minmax(min(180px,100%),1fr));width:100%}.skill{border:1px solid var(--border);border-radius:14px;padding:1.4rem;background:var(--card-bg);display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;overflow:hidden;transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease}.skill:hover{border-color:var(--border-hover);transform:translateY(-4px);box-shadow:0 14px 40px #38bdf824}.skill__image{width:48px;height:48px;-o-object-fit:contain;object-fit:contain;margin-bottom:.9rem}.skill h4{margin:0 0 .4rem;font-size:.875rem;font-weight:700;color:var(--text)}.skill p{font-size:.78rem;color:var(--text-muted);line-height:1.55;margin:0}.contact-section{max-width:860px;margin:0 auto 5rem}.contact-section__header{text-align:center;margin-bottom:2rem}.contact-section__header h2{margin:0 0 .4rem;font-size:1.85rem;font-weight:800;letter-spacing:-.02em;color:var(--text)}.contact-section__header p{margin:0 0 1.1rem;color:var(--text-muted);font-size:.95rem}.contact-section__header:after{content:"";display:block;width:36px;height:3px;background:var(--gradient);border-radius:2px;margin:0 auto}.contact-form{background:var(--card-bg);border:1px solid var(--border);border-radius:20px;padding:2rem 2.25rem;display:grid;gap:1.15rem;max-width:640px;margin:0 auto}.contact-form__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.contact-form__field{display:grid;gap:.4rem}.contact-form__field label{font-weight:600;font-size:.78rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em}.contact-form__field input,.contact-form__field textarea{border-radius:10px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);padding:.75rem .95rem;font-size:.9rem;font-family:inherit;outline:none;resize:vertical;transition:border-color .2s,box-shadow .2s}.contact-form__field input:focus,.contact-form__field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #38bdf81f}.contact-form__field input::-moz-placeholder,.contact-form__field textarea::-moz-placeholder{color:var(--text-dim)}.contact-form__field input::placeholder,.contact-form__field textarea::placeholder{color:var(--text-dim)}.contact-form__status{margin:0;font-weight:600;font-size:.875rem}.contact-form__status--success{color:#22c55e}.contact-form__status--error{color:#f87171}.contact-form__field-error{font-size:.78rem;color:#f87171;font-weight:500}.contact-form__field input[aria-invalid=true],.contact-form__field textarea[aria-invalid=true]{border-color:#f87171}.projects{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr))}.project-card{border:1px solid var(--border);border-radius:16px;background:var(--card-bg);overflow:hidden;display:flex;flex-direction:column;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}.project-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-glow);transform:translateY(-3px)}.project-card--featured{border-color:#38bdf84d}.project-card__image{width:100%;aspect-ratio:16 / 9;overflow:hidden;background:var(--surface)}.project-card__image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;transition:transform .4s ease}.project-card:hover .project-card__image img{transform:scale(1.04)}.project-card__body{padding:1.4rem 1.6rem;display:flex;flex-direction:column;flex:1;gap:1rem}.project-card__top{display:flex;flex-direction:column;gap:.4rem}.project-card__badge{display:inline-flex;align-self:flex-start;background:#38bdf81f;color:var(--accent);border:1px solid rgba(56,189,248,.25);border-radius:999px;padding:.2rem .65rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.project-card__top h3{margin:0;font-size:1rem;font-weight:700;color:var(--text);line-height:1.3}.project-card__top p{margin:0;font-size:.85rem;color:var(--text-muted);line-height:1.6}.project-card__tags{display:flex;flex-wrap:wrap;gap:.4rem}.project-card__tag{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);border-radius:6px;padding:.2rem .55rem;font-size:.72rem;font-weight:600}.project-card__links{display:flex;gap:.5rem;margin-top:auto}.project-card__link{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .9rem;border-radius:8px;font-size:.8rem;font-weight:600;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);transition:color .2s,border-color .2s,background .2s}.project-card__link:hover{color:var(--text);border-color:var(--border-hover);background:var(--surface-2)}.project-card__link--primary{background:var(--gradient);border-color:transparent;color:#040a15}.project-card__link--primary:hover{opacity:.88;color:#040a15;border-color:transparent}.footer{border-top:1px solid var(--border);padding:2.5rem clamp(1.25rem,6vw,4rem) 2rem}.footer__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:2rem}.footer__brand{display:flex;align-items:center;gap:.875rem}.footer__logo{width:40px;height:40px;border-radius:11px;background:var(--gradient);display:grid;place-items:center;color:#040a15;font-weight:900;font-size:.75rem;letter-spacing:.5px;flex-shrink:0}.footer__name{margin:0;font-size:.9rem;font-weight:700;color:var(--text)}.footer__tagline{margin:.15rem 0 0;font-size:.78rem;color:var(--text-dim)}.footer__social{display:flex;gap:.5rem}.footer__icon-link{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface);display:grid;place-items:center;color:var(--text-muted);transition:color .2s,border-color .2s,background .2s,transform .2s}.footer__icon-link:hover{color:var(--accent);border-color:var(--border-hover);background:var(--surface-2);transform:translateY(-2px)}.footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--border);flex-wrap:wrap}.footer__bottom p{margin:0;font-size:.8rem;color:var(--text-dim)}.chat-widget{position:fixed;right:20px;bottom:20px;width:min(360px,92vw);background:var(--bg-2);color:var(--text);border-radius:18px;box-shadow:0 24px 60px #070e1f80,0 0 0 1px var(--border);overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:200}.page.light-mode .chat-widget{background:#fff;box-shadow:0 24px 60px #0000001a,0 0 0 1px var(--border)}.chat-widget__header{padding:.875rem 1.25rem;font-weight:600;font-size:.875rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:#38bdf812;border-bottom:1px solid var(--border)}.chat-widget__title{display:flex;align-items:center;gap:.5rem;color:var(--text)}.chat-toggle{border:none;width:28px;height:28px;border-radius:50%;background:#38bdf81f;color:var(--accent);font-size:.95rem;font-weight:700;cursor:pointer;display:grid;place-items:center;transition:background .2s;line-height:1}.chat-toggle:hover{background:#38bdf838}.chat-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chat-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px #22c55ea6;flex-shrink:0}.chat-widget__body{display:grid}.chat-widget__messages{padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.75rem;max-height:260px;overflow-y:auto}.chat-bubble{padding:.7rem .95rem;font-size:.875rem;line-height:1.5;max-width:88%}.chat-bubble--ai{background:var(--surface-2);color:var(--text);border-radius:12px 12px 12px 4px;align-self:flex-start}.chat-bubble--user{background:#38bdf829;color:var(--text);border-radius:12px 12px 4px;align-self:flex-end}.chat-widget__input{display:flex;gap:.5rem;padding:.75rem 1rem 1rem;border-top:1px solid var(--border);background:var(--surface)}.chat-widget__input input{flex:1;border:1px solid var(--border);border-radius:8px;padding:.6rem .9rem;background:var(--input-bg);color:var(--text);font-family:inherit;font-size:.875rem;outline:none;transition:border-color .2s}.chat-widget__input input:focus{border-color:var(--accent)}.chat-widget__input input::-moz-placeholder{color:var(--text-dim)}.chat-widget__input input::placeholder{color:var(--text-dim)}.chat-widget__input button{border:none;border-radius:8px;padding:.6rem 1.1rem;background:var(--gradient);color:#040a15;font-weight:700;font-size:.8rem;cursor:pointer;font-family:inherit;transition:opacity .2s}.chat-widget__input button:hover:not(:disabled){opacity:.88}.chat-widget__input button:disabled{opacity:.45;cursor:not-allowed}.chat-widget.is-collapsed .chat-widget__body{display:none}.chat-widget.is-collapsed{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--gradient);box-shadow:0 12px 32px #38bdf866;overflow:visible;border:none}.chat-widget.is-collapsed .chat-widget__header{padding:0;background:transparent;border:none;width:100%;height:100%;justify-content:center}.chat-widget.is-collapsed .chat-widget__title{display:none}.chat-widget.is-collapsed .chat-toggle{width:100%;height:100%;border-radius:50%;background:transparent;font-size:.72rem;font-weight:800;letter-spacing:.5px;color:#040a15}.typing-indicator{display:inline-flex;gap:4px;align-items:center;padding:2px 0}.typing-indicator span{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:bounce 1.2s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{opacity:.3;transform:scale(1)}30%{opacity:1;transform:scale(1.25)}}.nav__hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:4px;margin-left:.5rem;flex-shrink:0}.nav__hamburger span{display:block;width:22px;height:2px;border-radius:2px;background:var(--text);transition:transform .25s ease,opacity .25s ease}.nav__hamburger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav__hamburger.is-open span:nth-child(2){opacity:0}.nav__hamburger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav__mobile-menu{position:absolute;top:60px;left:0;right:0;background:var(--nav-bg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border);display:flex;flex-direction:column;padding:.75rem 1.25rem 1rem;gap:.25rem;z-index:99}.nav__mobile-menu a{padding:.65rem .9rem;border-radius:8px;font-size:.9rem;font-weight:600;color:var(--text-muted);transition:color .2s,background .2s}.nav__mobile-menu a:hover{color:var(--text);background:var(--surface-2)}.nav__mobile-menu .nav__link--cta{background:var(--gradient);color:#040a15!important;text-align:center;margin-top:.25rem}@media(max-width:768px){.nav__links{display:none}.nav__hamburger{display:flex}.contact-form__row{grid-template-columns:1fr}.timeline{padding-left:1.75rem}.timeline__item{flex-direction:column;gap:.75rem}.timeline__item .pill{margin-left:0}.footer{flex-direction:column;text-align:center}.footer__links{justify-content:center}}@media(max-width:520px){.avatar{width:140px;height:140px}.stats{flex-wrap:wrap}.stats>div{flex:1 1 33%;min-width:90px}.hero__actions{width:100%}.btn{flex:1;padding:.65rem 1rem;font-size:.85rem}.skills{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.contact-form{padding:1.5rem}.chat-widget{right:10px;bottom:10px;width:min(340px,96vw)}.chat-widget.is-collapsed{width:50px;height:50px}.chat-widget__messages{max-height:200px}.chat-bubble{font-size:.82rem}}
