:root{--accent: #06b6d4;--accent-2: #0891b2;--accent-3: #8b5cf6;--bg: #05070a;--bg-2: #0b0f14;--surface: rgba(255, 255, 255, .04);--surface-strong: rgba(255, 255, 255, .07);--border: rgba(255, 255, 255, .08);--text: #e6edf3;--text-dim: #94a3b8;--shadow: 0 20px 60px rgba(0,0,0,.45)}[data-theme=light]{--bg: #f7fafc;--bg-2: #ffffff;--surface: rgba(15, 23, 42, .04);--surface-strong: rgba(15, 23, 42, .07);--border: rgba(15, 23, 42, .1);--text: #0f172a;--text-dim: #475569;--shadow: 0 20px 60px rgba(15,23,42,.1)}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}html,body,#root{height:100%}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);overflow-x:hidden;line-height:1.55;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}img{max-width:100%;height:auto;display:block}.ambient{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;background:radial-gradient(900px 600px at 15% 10%,rgba(6,182,212,.18),transparent 60%),radial-gradient(700px 500px at 85% 30%,rgba(139,92,246,.12),transparent 60%),radial-gradient(800px 600px at 50% 100%,rgba(6,182,212,.1),transparent 60%),linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 100%)}.ambient:before,.ambient:after{content:"";position:absolute;border-radius:50%;filter:blur(80px);opacity:.3;animation:float 20s ease-in-out infinite}.ambient:before{width:280px;height:280px;top:-80px;left:-80px;background:radial-gradient(circle,var(--accent),transparent 70%)}.ambient:after{width:320px;height:320px;bottom:-120px;right:-120px;background:radial-gradient(circle,var(--accent-3),transparent 70%);animation-delay:-10s}@media (min-width: 800px){.ambient:before{width:400px;height:400px;top:-100px;left:-100px}.ambient:after{width:500px;height:500px;bottom:-150px;right:-150px}}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(40px,-30px) scale(1.05)}66%{transform:translate(-30px,20px) scale(.95)}}a{color:var(--accent);text-decoration:none;transition:color .15s ease}a:hover{color:var(--accent-2)}.container{max-width:1120px;margin:0 auto;padding:0 16px}@media (min-width: 640px){.container{padding:0 20px}}@media (min-width: 800px){.container{padding:0 24px}}.glass{background:var(--surface);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}nav.topnav{position:sticky;top:8px;z-index:50;margin:8px 12px;max-width:1120px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:999px;animation:slideDown .6s cubic-bezier(.2,.8,.2,1) both}@media (min-width: 800px){nav.topnav{margin:12px auto;padding:8px 14px;top:12px}}@keyframes slideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}nav.topnav .brand{font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:8px;color:var(--text);font-size:14px}nav.topnav .brand svg,nav.topnav .brand img{color:var(--text)}nav.topnav .nav-links{display:none;list-style:none;margin:0;padding:0}@media (min-width: 800px){nav.topnav .nav-links{display:flex;gap:16px}}@media (min-width: 1024px){nav.topnav .nav-links{gap:18px}}nav.topnav .nav-links a{color:var(--text-dim);font-size:13.5px;position:relative;padding:4px 0}@media (min-width: 1024px){nav.topnav .nav-links a{font-size:14px}}nav.topnav .nav-links a:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--accent);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}nav.topnav .nav-links a:hover{color:var(--text)}nav.topnav .nav-links a:hover:after{transform:scaleX(1)}nav.topnav .nav-burger{display:grid}@media (min-width: 800px){nav.topnav .nav-burger{display:none}}.mobile-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:49;background:#00000080;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .25s ease}.mobile-drawer.open{opacity:1;pointer-events:auto}.mobile-drawer ul{position:absolute;top:76px;left:12px;right:12px;background:var(--bg-2);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);list-style:none;margin:0;padding:8px;display:flex;flex-direction:column;gap:2px;transform:translateY(-12px);transition:transform .25s cubic-bezier(.2,.8,.2,1)}.mobile-drawer.open ul{transform:translateY(0)}.mobile-drawer ul li a{display:block;padding:14px 16px;color:var(--text);font-size:16px;font-weight:500;border-radius:12px;transition:background .15s ease,color .15s ease}.mobile-drawer ul li a:hover,.mobile-drawer ul li a:active{background:var(--surface-strong);color:var(--accent)}@media (min-width: 800px){.mobile-drawer{display:none}}nav.topnav .nav-actions{display:flex;gap:6px}nav.topnav .toggle{border:1px solid var(--border);background:var(--surface-strong);color:var(--text);cursor:pointer;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;transition:transform .2s ease,background .2s ease,border-color .2s ease;flex-shrink:0;-webkit-tap-highlight-color:transparent}nav.topnav .toggle:hover{transform:rotate(15deg) scale(1.1);border-color:var(--accent)}nav.topnav .toggle:active{transform:scale(.95)}section{padding:32px 0 16px;scroll-margin-top:80px}@media (min-width: 800px){section{padding:40px 0 24px}}section h2{font-size:24px;margin:0 0 6px;letter-spacing:-.02em;line-height:1.15}@media (min-width: 640px){section h2{font-size:28px}}@media (min-width: 800px){section h2{font-size:30px}}section h2 .accent{color:var(--accent)}section .subtitle{color:var(--text-dim);margin-bottom:18px;font-size:14px}@media (min-width: 800px){section .subtitle{margin-bottom:20px;font-size:15px}}.hero{padding:32px 0 16px}@media (min-width: 800px){.hero{padding:56px 0 24px}}.hero-grid{display:flex;flex-direction:column-reverse;gap:24px;align-items:flex-start}@media (min-width: 800px){.hero-grid{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}}.hero-logo{align-self:center}@media (min-width: 800px){.hero-logo{align-self:auto}}.hero-logo-frame{width:140px;height:140px;display:grid;place-items:center;border-radius:24px;padding:18px;animation:heroIn .8s cubic-bezier(.2,.8,.2,1) .15s both,floatLogo 6s ease-in-out infinite 1s;position:relative;overflow:hidden;flex-shrink:0}@media (min-width: 800px){.hero-logo-frame{width:220px;height:220px;padding:22px}}.hero-logo-frame:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background:conic-gradient(from var(--angle, 0deg),transparent 0deg,var(--accent) 60deg,transparent 120deg);opacity:.35;z-index:0;animation:spinAura 8s linear infinite;filter:blur(20px);pointer-events:none}.hero-logo-frame>*{position:relative;z-index:1;width:100%;height:100%;display:grid;place-items:center}.hero-logo-frame img{width:100%;height:100%;object-fit:contain;object-position:center}.hero-logo-frame.photo{padding:0}.hero-logo-frame.photo img{object-fit:cover;border-radius:24px;display:block}@keyframes spinAura{to{transform:rotate(360deg)}}@keyframes floatLogo{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.hero h1{font-size:clamp(32px,7.5vw,64px);line-height:1.05;letter-spacing:-.03em;margin:14px 0 10px;animation:heroIn .8s cubic-bezier(.2,.8,.2,1) .1s both;word-wrap:break-word}.hero .lead{animation:heroIn .8s cubic-bezier(.2,.8,.2,1) .25s both}.hero .pill{animation:heroIn .8s cubic-bezier(.2,.8,.2,1) both}.hero .cta{animation:heroIn .8s cubic-bezier(.2,.8,.2,1) .4s both}@keyframes heroIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.hero h1 .grad{background:linear-gradient(120deg,var(--accent),var(--accent-3) 60%,var(--accent));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 6s linear infinite}@keyframes shine{to{background-position:200% 0}}.hero .pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;font-size:12px;color:var(--text-dim);border-radius:999px;border:1px solid var(--border);background:var(--surface);min-height:32px;max-width:100%;line-height:1}@media (min-width: 640px){.hero .pill{padding:6px 14px;font-size:13px}}.hero .pill-fixed{color:var(--text);font-weight:600;white-space:nowrap}.hero .pill-rotator{position:relative;display:inline-flex;align-items:center;height:20px;line-height:20px;min-width:140px;overflow:hidden}.hero .pill-rotator:before{content:"·";margin-right:8px}@media (max-width: 519px){.hero .pill-rotator{display:none}}@media (min-width: 640px){.hero .pill-rotator{min-width:200px}}.hero .pill-msg{display:inline-flex;align-items:center;white-space:nowrap;height:20px;line-height:20px;animation:pillSwap .55s cubic-bezier(.2,.8,.2,1) both}@keyframes pillSwap{0%{opacity:0;transform:translateY(8px);filter:blur(2px)}60%{opacity:1;transform:translateY(0);filter:blur(0)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.hero .pill .live{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 8px #10b981;animation:pulse 2s ease-in-out infinite;flex-shrink:0}@keyframes pulse{0%,to{box-shadow:0 0 8px #10b981;transform:scale(1)}50%{box-shadow:0 0 16px #10b981,0 0 24px #10b981;transform:scale(1.15)}}.hero p.lead{font-size:15px;color:var(--text-dim);max-width:640px;margin:8px 0 0}@media (min-width: 640px){.hero p.lead{font-size:16px}}@media (min-width: 800px){.hero p.lead{font-size:17px}}.hero .cta{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}@media (min-width: 640px){.hero .cta{gap:10px;margin-top:22px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:999px;font-weight:600;font-size:13px;cursor:pointer;border:1px solid var(--border);background:var(--surface-strong);color:var(--text);transition:transform .15s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;position:relative;overflow:hidden;min-height:40px;-webkit-tap-highlight-color:transparent;text-decoration:none}@media (min-width: 640px){.btn{padding:11px 18px;font-size:14px}}.btn:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 8px 24px #06b6d440}.btn:active{transform:translateY(0) scale(.98)}.btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#001018;border-color:transparent}.btn.primary:hover{box-shadow:0 8px 28px #06b6d480}.btn.primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transition:left .6s ease}.btn.primary:hover:before{left:100%}.skills-grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 640px){.skills-grid{grid-template-columns:1fr 1fr;gap:14px}}@media (min-width: 1024px){.skills-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}.skills-card{padding:16px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;position:relative;overflow:hidden}@media (min-width: 640px){.skills-card{padding:18px 18px 16px}}.skills-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(420px 200px at 0% 0%,rgba(6,182,212,.1),transparent 60%);opacity:0;transition:opacity .25s ease;pointer-events:none}.skills-card:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 10px 30px #06b6d41a}.skills-card:hover:before{opacity:1}.skills-card-head{display:flex;align-items:center;gap:10px;margin:0 0 12px}.skills-card-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#06b6d426,#8b5cf626);border:1px solid rgba(6,182,212,.25);color:var(--accent);flex-shrink:0}.skills-card h3{margin:0;font-size:12px;color:var(--text);letter-spacing:.06em;text-transform:uppercase;font-weight:600}@media (min-width: 640px){.skills-card h3{font-size:13px}}.skills-chips{display:flex;flex-wrap:wrap;gap:6px}@media (min-width: 640px){.skills-chips{gap:7px}}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;font-size:12px;color:var(--text);border:1px solid var(--border);background:var(--surface-strong);border-radius:999px;transition:transform .15s ease,background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease;white-space:nowrap}@media (min-width: 640px){.chip{padding:5px 11px;font-size:13px}}.chip:hover{transform:translateY(-2px);border-color:var(--accent);color:var(--accent)}.chip-core{background:linear-gradient(135deg,#06b6d42e,#8b5cf62e);border-color:#06b6d473;color:var(--text);box-shadow:inset 0 0 0 1px #06b6d41a;font-weight:600}.chip-core:hover{border-color:var(--accent);background:linear-gradient(135deg,#06b6d44d,#8b5cf640);color:var(--text);box-shadow:0 4px 14px #06b6d440}.chip-core-icon{color:var(--accent);flex-shrink:0}[data-theme=light] .skills-card-icon{background:linear-gradient(135deg,#0891b21f,#8b5cf61f);border-color:#0891b24d;color:var(--accent-2)}[data-theme=light] .chip-core{background:linear-gradient(135deg,#0891b21a,#8b5cf61a);border-color:#0891b266;color:var(--text)}[data-theme=light] .chip-core-icon{color:var(--accent-2)}[data-theme=light] .skills-card:before{background:radial-gradient(420px 200px at 0% 0%,rgba(8,145,178,.1),transparent 60%)}.timeline{position:relative;padding-left:22px}@media (min-width: 640px){.timeline{padding-left:28px}}.timeline:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:linear-gradient(180deg,var(--accent),transparent);opacity:.6}@media (min-width: 640px){.timeline:before{left:7px}}.tl-item{position:relative;padding:6px 0 12px}.tl-item:before{content:"";position:absolute;left:-21px;top:16px;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--bg),0 0 12px var(--accent);transition:transform .2s ease,box-shadow .2s ease}@media (min-width: 640px){.tl-item:before{left:-25px;top:18px;width:12px;height:12px;box-shadow:0 0 0 4px var(--bg),0 0 12px var(--accent)}}.tl-item:hover:before{transform:scale(1.3);box-shadow:0 0 0 4px var(--bg),0 0 20px var(--accent)}.tl-item .card{padding:14px 16px;transition:transform .2s ease,border-color .2s ease}@media (min-width: 640px){.tl-item .card{padding:14px 18px}}.tl-item .card:hover{transform:translate(4px);border-color:var(--accent)}.tl-item .period{font-size:10px;color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase}@media (min-width: 640px){.tl-item .period{font-size:11px}}.tl-item h3{margin:3px 0 1px;font-size:16px}@media (min-width: 640px){.tl-item h3{font-size:17px}}.tl-item .company{color:var(--accent);font-weight:600;font-size:13px}.tl-item ul{margin:8px 0 0;padding-left:18px;color:var(--text-dim);font-size:13px;line-height:1.55}@media (min-width: 640px){.tl-item ul{font-size:14px}}.tl-item ul li{margin-bottom:2px}.projects-grid{display:grid;grid-template-columns:1fr;gap:12px}@media (min-width: 640px){.projects-grid{grid-template-columns:1fr 1fr;gap:14px}}@media (min-width: 1024px){.projects-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}.project-card{padding:16px;display:flex;flex-direction:column;gap:10px;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}@media (min-width: 640px){.project-card{padding:18px}}.project-card:hover{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 16px 40px #06b6d426}.project-card h3{margin:0;font-size:16px}@media (min-width: 640px){.project-card h3{font-size:17px}}.project-card p{margin:0;color:var(--text-dim);font-size:13.5px;flex:1;line-height:1.5}@media (min-width: 640px){.project-card p{font-size:14px}}.project-card .stack{display:flex;flex-wrap:wrap;gap:6px}.project-card .stack span{font-size:11px;padding:3px 8px;border-radius:999px;background:#06b6d41f;color:var(--accent);border:1px solid rgba(6,182,212,.25)}.project-card a.link{font-size:13px;color:var(--accent);display:inline-flex;align-items:center;gap:4px;transition:gap .2s ease;min-height:32px}.project-card a.link:hover{gap:8px}.tabs{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--surface);border:1px solid var(--border);margin-bottom:16px;max-width:100%;flex-wrap:wrap}.tabs button{background:transparent;border:none;color:var(--text-dim);padding:8px 14px;border-radius:999px;cursor:pointer;font-size:13px;font-weight:500;transition:background .2s ease,color .2s ease;min-height:36px;-webkit-tap-highlight-color:transparent}.tabs button:hover{color:var(--text)}.tabs button.active{background:var(--surface-strong);color:var(--text)}.contact-wrap{display:grid;grid-template-columns:1fr;gap:16px}@media (min-width: 800px){.contact-wrap{grid-template-columns:1fr 1fr;gap:18px}}.form{padding:18px;display:flex;flex-direction:column;gap:12px}@media (min-width: 640px){.form{padding:22px;gap:14px}}.form .field{display:flex;flex-direction:column;gap:6px}.form label{display:block;font-size:11px;color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.form input,.form textarea{width:100%;display:block;background:var(--bg-2);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:12px 13px;font-family:inherit;font-size:16px;transition:border-color .15s ease,box-shadow .15s ease}@media (min-width: 640px){.form input,.form textarea{font-size:14px;padding:11px 13px}}.form input:focus,.form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #06b6d426}.form textarea{min-height:120px;resize:vertical}.form .status{font-size:13px;min-height:18px}.form .status.ok{color:#10b981}.form .status.err{color:#f87171}.info-card{padding:18px}@media (min-width: 640px){.info-card{padding:22px}}.info-card h3{margin:0 0 10px;font-size:16px}.info-row{display:flex;align-items:center;gap:10px;padding:6px 0;color:var(--text-dim);font-size:13.5px;word-break:break-all}@media (min-width: 640px){.info-row{font-size:14px}}.info-row svg{color:var(--accent);flex-shrink:0;transition:transform .2s ease}.info-row:hover svg{transform:scale(1.2)}footer{padding:24px 16px;text-align:center;color:var(--text-dim);font-size:12px;border-top:1px solid var(--border);margin-top:24px;line-height:1.5}@media (min-width: 640px){footer{font-size:13px;padding:24px 0}}.fade-up{opacity:0;transform:translateY(20px);transition:all .7s cubic-bezier(.2,.8,.2,1)}.fade-up.in{opacity:1;transform:translateY(0)}.fade-up.in .skills-card,.fade-up.in .project-card,.fade-up.in .tl-item{animation:cardIn .6s cubic-bezier(.2,.8,.2,1) both}.fade-up.in .skills-card:nth-child(1),.fade-up.in .project-card:nth-child(1),.fade-up.in .tl-item:nth-child(1){animation-delay:0s}.fade-up.in .skills-card:nth-child(2),.fade-up.in .project-card:nth-child(2),.fade-up.in .tl-item:nth-child(2){animation-delay:.08s}.fade-up.in .skills-card:nth-child(3),.fade-up.in .project-card:nth-child(3),.fade-up.in .tl-item:nth-child(3){animation-delay:.16s}.fade-up.in .skills-card:nth-child(4),.fade-up.in .project-card:nth-child(4),.fade-up.in .tl-item:nth-child(4){animation-delay:.24s}.fade-up.in .tl-item:nth-child(5){animation-delay:.32s}.fade-up.in .tl-item:nth-child(6){animation-delay:.4s}.fade-up.in .tl-item:nth-child(7){animation-delay:.48s}.fade-up.in .tl-item:nth-child(8){animation-delay:.56s}.fade-up.in .tl-item:nth-child(9){animation-delay:.64s}.fade-up.in .tl-item:nth-child(10){animation-delay:.72s}.fade-up.in .tl-item:nth-child(11){animation-delay:.8s}@keyframes cardIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (hover: none){.btn:hover,.skills-card:hover,.tl-item .card:hover,.project-card:hover,.chip:hover,.info-row:hover svg,nav.topnav .toggle:hover{transform:none;box-shadow:var(--shadow);border-color:var(--border)}.tl-item:hover:before{transform:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
