*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #060608;--surface: #0d0e12;--surface-2: #13151c;--border: #1c1f2b;--border-soft: rgba(255, 255, 255, .06);--text: #e6e8f0;--muted: #8892b0;--accent: #5b7cfa;--accent-dim: rgba(91, 124, 250, .1);--accent-glow: rgba(91, 124, 250, .3);--green: #1cd9a0;--r-sm: 6px;--r-md: 12px;--r-lg: 20px;--r-xl: 32px;--sans: "Inter", system-ui, sans-serif;--mono: "JetBrains Mono", monospace;--ease: cubic-bezier(.16, 1, .3, 1)}html{overflow-x:hidden;scroll-behavior:smooth;scroll-padding-top:76px}html::-webkit-scrollbar{width:5px}html::-webkit-scrollbar-track{background:var(--bg)}html::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}html::-webkit-scrollbar-thumb:hover{background:var(--accent)}body{font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.6}body:before{content:"";position:fixed;top:-20%;left:-5%;width:60vw;height:60vw;background:radial-gradient(ellipse,rgba(91,124,250,.06) 0%,transparent 70%);pointer-events:none;z-index:-1}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--accent-dim);color:var(--accent)}.canvas-fallback{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.canvas-fallback__orb{position:absolute;border-radius:50%;filter:blur(90px);animation:orb-drift linear infinite}.canvas-fallback__orb--1{width:55vw;height:55vw;background:var(--accent);opacity:.12;top:-15%;right:-8%;animation-duration:20s}.canvas-fallback__orb--2{width:40vw;height:40vw;background:var(--green);opacity:.07;bottom:5%;left:-8%;animation-duration:26s;animation-delay:-10s}.canvas-fallback__orb--3{width:30vw;height:30vw;background:var(--accent);opacity:.06;top:35%;left:25%;animation-duration:17s;animation-delay:-5s}@keyframes orb-drift{0%,to{transform:translate(0) scale(1)}33%{transform:translate(2vw,-2vh) scale(1.06)}66%{transform:translate(-2vw,3vh) scale(.94)}}.canvas-fallback__avatar--hidden{opacity:0;pointer-events:none}.canvas-fallback__avatar{transition:opacity .4s ease;position:fixed;right:12%;top:50%;transform:translateY(-55%);width:180px;height:180px;border-radius:50%;overflow:hidden;border:3px solid var(--accent);box-shadow:0 0 0 6px #5b7cfa26,0 0 40px var(--accent-glow);animation:avatar-float 4s ease-in-out infinite}.canvas-fallback__avatar img{width:100%;height:100%;object-fit:cover}@keyframes avatar-float{0%,to{transform:translateY(-55%)}50%{transform:translateY(calc(-55% - 12px))}}@media(max-width:768px){.canvas-fallback__avatar{display:none}}.theme-btn{position:fixed;bottom:1.5rem;right:1.5rem;z-index:300;width:42px;height:42px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;transition:border-color .25s,box-shadow .25s;box-shadow:0 4px 24px #00000080}.theme-btn:hover{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-dim)}.nav{position:fixed;top:0;left:0;right:0;z-index:200;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#060608bf;border-bottom:1px solid var(--border-soft)}.nav-inner{max-width:1000px;margin:0 auto;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:58px}.nav-logo{font-family:var(--mono);font-size:.9rem;font-weight:700;color:var(--accent);letter-spacing:-.02em}.nav-links{display:flex;gap:.15rem;list-style:none}.nav-links a{padding:.4rem .85rem;border-radius:var(--r-sm);font-size:.82rem;font-weight:500;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;transition:color .2s,background .2s}.nav-links a:hover{color:var(--text);background:var(--surface-2)}@media(max-width:600px){.nav-logo{display:none}.nav-links a{font-size:.72rem;padding:.35rem .5rem}}.hero{min-height:calc(100vh - 58px);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4rem;padding:4rem;max-width:1100px;margin:0 auto;position:relative;z-index:1}.hero-left{display:flex;flex-direction:column;gap:1.5rem}.hero-status{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .9rem;border-radius:99px;border:1px solid var(--border);background:var(--surface);font-family:var(--mono);font-size:.75rem;color:var(--muted);width:fit-content}.hero-status-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);animation:blink 2s ease infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.4}}.hero-name{font-size:clamp(2.8rem,5.5vw,5.5rem);font-weight:900;letter-spacing:-.04em;line-height:1.02;color:var(--text)}.hero-name .accent{color:var(--accent)}.hero-role{font-size:clamp(1rem,1.8vw,1.25rem);color:var(--muted);font-weight:400;line-height:1.5}.hero-role strong{color:var(--text);font-weight:600}.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.5rem;border-radius:var(--r-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .25s var(--ease);border:none;text-decoration:none}.btn-primary{background:#4262e0;color:#fff;box-shadow:0 4px 20px var(--accent-glow)}.btn-primary:hover{filter:brightness(1.1);transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow)}.btn-ghost{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}@media(max-width:768px){.hero{grid-template-columns:1fr;padding:5rem 1.5rem 2.5rem;gap:3rem;text-align:center;align-items:start;min-height:100vh}.hero:before{display:none}.hero-status{margin:0 auto}.hero-actions{justify-content:center}}.section{padding:4rem 2rem;max-width:1000px;margin:0 auto;position:relative;z-index:1}.section-label{font-family:var(--mono);font-size:.72rem;color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:.75rem}.section-title{font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:800;letter-spacing:-.03em;margin-bottom:.75rem;line-height:1.1}.section-sub{font-size:1rem;color:var(--muted);max-width:520px;line-height:1.7;margin-bottom:2rem}.divider{width:100%;height:1px;background:var(--border);max-width:1000px;margin:0 auto}.about-grid{display:grid;grid-template-columns:2fr 1fr;gap:2rem;align-items:start}@media(max-width:768px){.about-grid{grid-template-columns:1fr}}.about-text{display:flex;flex-direction:column;gap:1.1rem}.about-text p{font-size:1.05rem;line-height:1.8;color:var(--muted)}.about-text p strong{color:var(--text);font-weight:600}.about-chips{display:flex;flex-direction:column;gap:1rem}.about-chip{padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);transition:border-color .25s}.about-chip:hover{border-color:var(--accent)}.chip-label{font-family:var(--mono);font-size:.7rem;color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.35rem}.chip-value{font-size:.875rem;color:var(--text);font-weight:500}.timeline{display:flex;flex-direction:column;gap:0;position:relative}.timeline:before{content:"";position:absolute;left:11px;top:14px;bottom:14px;width:2px;background:linear-gradient(to bottom,var(--accent),transparent)}.tl-item{display:grid;grid-template-columns:24px 1fr;gap:1.5rem;padding-bottom:2.5rem;position:relative}.tl-dot{width:24px;height:24px;border-radius:50%;background:var(--surface-2);border:2px solid var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;position:relative;z-index:1;transition:background .25s,box-shadow .25s}.tl-dot:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--accent)}.tl-item:hover .tl-dot{background:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.tl-item:hover .tl-dot:after{background:#fff}.tl-body{padding-bottom:.25rem}.tl-year{font-family:var(--mono);font-size:.72rem;color:var(--accent);font-weight:700;letter-spacing:.08em;margin-bottom:.35rem}.tl-text{font-size:.95rem;color:var(--muted);line-height:1.65}.tl-text strong{color:var(--text)}.reviews-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}@media(max-width:700px){.reviews-grid{grid-template-columns:1fr}}.review-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:2rem;display:flex;flex-direction:column;gap:1.25rem;transition:border-color .25s,transform .25s var(--ease)}.review-card:hover{border-color:#5b7cfa66;transform:translateY(-4px)}.review-card.cta{background:var(--accent-dim);border-color:#5b7cfa4d;justify-content:center;align-items:flex-start;min-height:220px}.review-head{display:flex;align-items:center;gap:.875rem}.review-logo{width:46px;height:46px;border-radius:var(--r-md);object-fit:cover;background:var(--surface-2);flex-shrink:0}.review-meta{display:flex;flex-direction:column}.review-client{font-size:.95rem;font-weight:700;color:var(--text)}.review-client a{color:var(--accent);transition:opacity .2s}.review-client a:hover{opacity:.7}.review-sub{font-size:.75rem;color:var(--muted);margin-top:.1rem}.review-stars{font-size:.75rem;color:#f5a623;letter-spacing:.05em}.review-quote{font-size:.9rem;color:var(--muted);line-height:1.75;font-style:italic;flex:1}.cta-heading{font-size:1.2rem;font-weight:800;letter-spacing:-.02em;margin-bottom:.4rem}.cta-text{font-size:.875rem;color:var(--muted);line-height:1.6;margin-bottom:1.5rem}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.875rem}.skill-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.25rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.6rem;text-align:center;cursor:default;transition:border-color .2s,transform .25s var(--ease),background .2s}.skill-card:hover{border-color:#5b7cfa66;background:var(--surface-2);transform:translateY(-4px)}.skill-icon{font-size:1.875rem;color:var(--accent);line-height:1;transition:color .2s,transform .3s var(--ease)}.skill-card:hover .skill-icon{color:var(--text);transform:scale(1.15)}.skill-name{font-size:.825rem;font-weight:700;color:var(--text);letter-spacing:-.01em}.skill-level{font-family:var(--mono);font-size:.65rem;color:var(--muted);background:var(--surface-2);padding:.2rem .5rem;border-radius:99px}.contact-links{display:flex;flex-wrap:wrap;gap:.875rem}.contact-link{display:flex;align-items:center;gap:.6rem;padding:.8rem 1.4rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);font-size:.875rem;font-weight:500;color:var(--text);transition:border-color .2s,background .2s,transform .25s var(--ease)}.contact-link:hover{border-color:#5b7cfa80;background:var(--accent-dim);color:var(--accent);transform:translateY(-2px)}.contact-link svg{font-size:1.15rem;color:var(--accent);transition:color .2s}.contact-link:hover svg{color:var(--text)}footer{border-top:1px solid var(--border);padding:2rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;max-width:1000px;margin:0 auto}.footer-copy{font-size:.8rem;color:var(--muted);font-family:var(--mono)}.footer-links{display:flex;gap:1.25rem}.footer-links a{font-size:.8rem;color:var(--muted);transition:color .2s}.footer-links a:hover{color:var(--accent)}.section-label{cursor:default;transition:color .3s,letter-spacing .3s}.section-label:hover{color:var(--text);letter-spacing:.2em}.section-title{cursor:default;transition:opacity .3s}.section-title:hover{opacity:.85}.about-text p{transition:color .3s}.about-text p:hover{color:var(--text)}.tl-text{transition:color .3s}.tl-item:hover .tl-text{color:var(--text)}.about-chip{transition:border-color .25s,transform .25s var(--ease),background .25s}.about-chip:hover{border-color:var(--accent);transform:translate(4px);background:var(--surface-2)}
