:root{--bg: #f6f7fb;--bg-soft: #eef1f7;--surface: #ffffff;--ink: #2b3040;--ink-soft: #5b6478;--ink-faint: #9aa3b5;--blue: #5b8def;--blue-soft: #8fb3f0;--blue-faint: #dfe7f7;--line: #e6e9f1;--radius: 20px;--shadow: 0 20px 60px -30px rgba(60, 90, 150, .35);--shadow-soft: 0 10px 40px -24px rgba(60, 90, 150, .4);--maxw: 1120px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}.bg-gradient{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background:radial-gradient(60% 50% at 75% 10%,rgba(143,179,240,.28),transparent 60%),radial-gradient(50% 40% at 15% 25%,rgba(223,231,247,.6),transparent 55%),linear-gradient(180deg,var(--bg) 0%,var(--bg-soft) 100%)}.particle-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;z-index:-1;pointer-events:none}.navbar{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:center;padding:18px clamp(20px,5vw,60px);transition:padding .35s ease}.navbar__inner{display:flex;align-items:center;justify-content:space-between;gap:clamp(20px,4vw,44px);width:100%;max-width:var(--maxw);padding:12px 22px;border-radius:999px;border:1px solid transparent;transition:background .3s ease,box-shadow .3s ease,border-color .3s ease}.navbar--scrolled .navbar__inner{background:#f6f7fbb8;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-color:var(--line);box-shadow:0 14px 40px -18px #3c5a968c}.navbar__logo{font-family:Inter,sans-serif;font-weight:700;font-size:1.25rem;letter-spacing:-.02em}.navbar__logo span{color:var(--blue)}.navbar__links{display:flex;gap:clamp(18px,3vw,38px);font-size:.95rem;color:var(--ink-soft)}.navbar__links a{position:relative;transition:color .2s}.navbar__links a:after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;border-radius:2px;background:var(--blue);transition:width .25s ease}.navbar__links a:hover{color:var(--ink)}.navbar__links a:hover:after{width:100%}.navbar__links a.active{color:var(--ink)}.navbar__links a.active:after{width:100%}.lang-toggle{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 14px;font-size:.82rem;font-weight:600;color:var(--ink-faint);cursor:pointer;display:flex;gap:6px;transition:box-shadow .2s}.lang-toggle:hover{box-shadow:var(--shadow-soft)}.lang-toggle .active{color:var(--blue)}.lang-toggle .divider{color:var(--ink-faint)}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 clamp(20px,5vw,60px);max-width:var(--maxw);margin:0 auto}.hero__canvas{position:absolute;top:0;bottom:0;left:50%;width:100vw;transform:translate(-50%);z-index:-1;pointer-events:none;-webkit-mask-image:radial-gradient(78% 78% at 50% 50%,#000 52%,transparent 100%);mask-image:radial-gradient(78% 78% at 50% 50%,#000 52%,transparent 100%)}.hero__content{max-width:680px;margin:0 auto}.hero__greeting{color:var(--blue);font-weight:600;letter-spacing:.02em;margin-bottom:10px}.hero__name{font-family:Inter,sans-serif;font-size:clamp(2.8rem,8vw,5rem);font-weight:700;line-height:1.02;letter-spacing:-.03em;background:linear-gradient(120deg,var(--ink) 30%,var(--blue) 120%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero__role{font-family:Inter,sans-serif;font-size:clamp(1.1rem,2.5vw,1.5rem);color:var(--ink-soft);margin-top:8px;font-weight:500}.hero__tagline{margin-top:20px;color:var(--ink-soft);font-size:1.08rem;max-width:460px;margin-left:auto;margin-right:auto}.hero__actions{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap;justify-content:center}.btn{border-radius:999px;padding:13px 26px;font-weight:600;font-size:.98rem;transition:transform .2s ease,box-shadow .2s ease,background .2s;cursor:pointer;display:inline-block}.btn--primary{background:var(--blue);color:#fff;box-shadow:var(--shadow-soft)}.btn--primary:hover{transform:translateY(-2px);box-shadow:0 16px 34px -14px #5b8def99}.btn--ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.btn--ghost:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.hero__scroll{position:absolute;bottom:34px;left:50%;transform:translate(-50%);width:24px;height:40px;border:2px solid var(--ink-faint);border-radius:14px;display:flex;justify-content:center;padding-top:7px}.hero__scroll-dot{width:5px;height:8px;border-radius:3px;background:var(--blue);animation:scrollDot 1.6s ease-in-out infinite}@keyframes scrollDot{0%,to{opacity:0;transform:translateY(0)}40%{opacity:1}70%{opacity:0;transform:translateY(10px)}}.section{max-width:var(--maxw);margin:0 auto;padding:clamp(70px,12vh,130px) clamp(20px,5vw,60px)}.section__eyebrow{font-family:Inter,sans-serif;color:var(--blue);font-weight:600;font-size:.9rem;letter-spacing:.1em}.section__title{font-family:Inter,sans-serif;font-size:clamp(1.9rem,5vw,3rem);font-weight:700;letter-spacing:-.02em;margin:6px 0 4px}.section__subtitle{color:var(--ink-soft);margin-bottom:40px}.about__grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(30px,6vw,70px);margin-top:30px;align-items:start}.about__body{font-size:1.14rem;line-height:1.75;color:var(--ink-soft)}.about__body:first-line{color:var(--ink);font-weight:500}.about__facts{display:flex;flex-direction:column;gap:12px}.fact{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:var(--surface);border:1px solid var(--line);border-left:3px solid transparent;border-radius:14px;box-shadow:var(--shadow-soft);transition:transform .22s ease,box-shadow .22s ease,border-left-color .22s ease}.fact:hover{transform:translate(5px);box-shadow:var(--shadow);border-left-color:var(--blue)}.fact__k{display:flex;align-items:center;gap:10px;color:var(--ink-faint);font-weight:500}.fact__dot{width:7px;height:7px;border-radius:50%;background:var(--blue-soft);flex-shrink:0}.fact:hover .fact__dot{background:var(--blue)}.fact__v{color:var(--ink);font-weight:600;text-align:right}.skills__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px}.skill-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:30px 22px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;box-shadow:var(--shadow-soft);transition:transform .25s ease,box-shadow .25s ease}.skill-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.skill-card__icon{width:64px;height:64px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:2rem;transition:transform .25s ease}.skill-card:hover .skill-card__icon{transform:scale(1.08)}.skill-card__name{font-family:Inter,sans-serif;font-size:1.15rem;font-weight:600}.projects__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:26px}.project-card-wrap{height:100%}.project-card{height:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft);transition:transform .28s ease,box-shadow .28s ease;display:flex;flex-direction:column}.project-card:hover{transform:translateY(-8px);box-shadow:var(--shadow)}.project-card__thumb{position:relative;height:180px;overflow:hidden;background:linear-gradient(135deg,var(--blue-faint),var(--blue-soft))}.project-card__img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;transition:transform .4s ease}.project-card:hover .project-card__img{transform:scale(1.05)}.project-card--soon{cursor:default}.project-card--soon:hover{transform:none;box-shadow:var(--shadow-soft)}.project-card--soon .project-card__img{filter:blur(3px);transform:scale(1.06)}.project-card--soon:hover .project-card__img{transform:scale(1.06)}.project-card__soon{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#ffffff8c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:var(--ink);font-family:Inter,sans-serif;font-weight:700;font-size:1.15rem;letter-spacing:.01em}.project-card__link.is-soon{color:var(--ink-faint);cursor:default}.project-card__badge{position:absolute;top:14px;left:14px;background:#ffffffd9;color:var(--blue);font-size:.72rem;font-weight:600;padding:4px 10px;border-radius:999px}.project-card__body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}.project-card__body h3{font-family:Inter,sans-serif;font-size:1.25rem;font-weight:600}.project-card__body p{color:var(--ink-soft);font-size:.96rem}.project-card__tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.project-card__tags span{font-size:.76rem;color:var(--ink-soft);background:var(--bg-soft);border:1px solid var(--line);padding:4px 10px;border-radius:999px}.project-card__link{margin-top:auto;padding-top:12px;color:var(--blue);font-weight:600;font-size:.92rem}.section--contact,.section--contact .section__eyebrow,.section--contact .section__title,.section--contact .section__subtitle{text-align:center}.contact__socials{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;margin-top:10px}.social-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px 30px;min-width:240px;text-align:left;box-shadow:var(--shadow-soft);transition:transform .25s ease,box-shadow .25s ease;display:flex;flex-direction:column;gap:6px}.social-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.social-card__icon{width:40px;height:40px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-soft);color:var(--blue);margin-bottom:4px}.social-card__icon svg{width:20px;height:20px}.social-card__name{font-family:Inter,sans-serif;font-weight:600;font-size:1.1rem}.social-card__handle{color:var(--ink-soft);font-size:.92rem}.footer{max-width:var(--maxw);margin:0 auto;padding:30px clamp(20px,5vw,60px) 50px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--ink-faint);font-size:.9rem;flex-wrap:wrap;gap:8px}@media (max-width: 780px){.navbar__links{display:none}.about__grid{grid-template-columns:1fr}.hero__canvas{opacity:.5}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
