*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0f14;--bg-alt: #12151c;--surface: #1a1e28;--surface-2: #222736;--border: #2a2f3d;--accent: #4f8ef7;--accent-2: #7c6af5;--text: #e8eaf0;--text-muted:#8892a4;--text-dim: #5a6378;--radius: 12px;--radius-sm: 8px;--transition: .2s ease;--font-mono: "Fira Code", "Cascadia Code", "Consolas", monospace;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--max-w: 1100px;--nav-h: 68px}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-h)}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.container{width:100%;max-width:var(--max-w);margin-inline:auto;padding-inline:clamp(1.25rem,5vw,2.5rem)}.section{padding-block:clamp(4rem,10vw,7rem)}.section-alt{background:var(--bg-alt);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}h1,h2,h3{line-height:1.15;letter-spacing:-.02em}h1{font-size:clamp(2.8rem,7vw,5rem);font-weight:700}h2{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:700}h3{font-size:1.2rem;font-weight:600;margin-bottom:.5rem}p{color:var(--text-muted);max-width:60ch}.eyebrow{display:inline-block;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.75rem}.section-header{margin-bottom:3rem}.strava-widget{margin-top:2.5rem;display:flex;justify-content:center}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;cursor:pointer;border:none;transition:all var(--transition);white-space:nowrap}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 0 #4f8ef766}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 20px #4f8ef759}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-ghost:hover{background:var(--surface);border-color:var(--text-dim)}.btn-full{width:100%;justify-content:center}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#0d0f14cc;border-bottom:1px solid var(--border);transition:background var(--transition)}.nav{display:flex;align-items:center;justify-content:space-between;height:100%}.nav-logo{font-family:var(--font-mono);font-size:1.1rem;font-weight:700;color:var(--accent);letter-spacing:-.03em;padding:.25rem .6rem;border:1.5px solid var(--accent);border-radius:var(--radius-sm);transition:all var(--transition)}.nav-logo:hover{background:var(--accent);color:#fff}.nav-links{display:flex;align-items:center;gap:.25rem;list-style:none}.nav-links a{padding:.5rem .9rem;border-radius:var(--radius-sm);font-size:.92rem;font-weight:500;color:var(--text-muted);transition:all var(--transition)}.nav-links a:hover{color:var(--text);background:var(--surface)}.btn-nav{background:linear-gradient(135deg,var(--accent),var(--accent-2))!important;color:#fff!important;padding:.5rem 1.1rem!important}.btn-nav:hover{transform:translateY(-1px);box-shadow:0 4px 12px #4f8ef74d}.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}.nav-toggle span{display:block;width:22px;height:2px;background:var(--text);border-radius:2px;transition:all var(--transition)}.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:var(--nav-h);position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(79,142,247,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(79,142,247,.03) 1px,transparent 1px);background-size:60px 60px;pointer-events:none}.hero:after{content:"";position:absolute;top:-10%;right:-10%;width:60vw;height:60vw;border-radius:50%;background:radial-gradient(circle,rgba(79,142,247,.06) 0%,transparent 70%);pointer-events:none}@media(max-width:999px){.hero-visual .code-block pre,.hero-visual .code-block code{text-align:left;font-size:.65rem;line-height:1.6}.hero-visual{display:block;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(1.1);opacity:.15;pointer-events:none;width:min(500px,95vw);z-index:0;filter:blur(.2px)}.hero-inner{position:relative;z-index:1}}@media(min-width:1000px){.hero-visual{display:block}}.hero-inner{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;padding-block:4rem;position:relative;z-index:1}.hero-text .eyebrow{margin-bottom:1rem}.hero-text h1{background:linear-gradient(135deg,var(--text) 0%,var(--text-muted) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1.25rem}.hero-sub{font-size:1.1rem;margin-bottom:2rem;max-width:48ch}.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap}.code-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:0 20px 60px #0006}.code-dots{display:flex;gap:6px;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--surface-2)}.code-dots span{width:10px;height:10px;border-radius:50%;background:var(--border)}.code-dots span:nth-child(1){background:#ff5f57}.code-dots span:nth-child(2){background:#febc2e}.code-dots span:nth-child(3){background:#28c840}.code-block pre{padding:1.5rem;font-family:var(--font-mono);font-size:.88rem;line-height:1.8;overflow-x:auto}.c-keyword{color:#c792ea}.c-var{color:#82aaff}.c-str{color:#c3e88d}.c-op{color:var(--text-muted)}.c-bool{color:#f78c6c}.hero-scroll{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--text-dim);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;animation:scrollPulse 2s ease-in-out infinite}@keyframes scrollPulse{0%,to{opacity:.4;transform:translate(-50%) translateY(0)}50%{opacity:.8;transform:translate(-50%) translateY(4px)}}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;transition:all var(--transition);position:relative;overflow:hidden}.card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(79,142,247,.04),transparent);opacity:0;transition:opacity var(--transition)}.card:hover{border-color:#4f8ef74d;transform:translateY(-3px);box-shadow:0 12px 40px #0000004d}.card:hover:before{opacity:1}.card-icon{width:44px;height:44px;color:var(--accent);margin-bottom:1.25rem}.card-icon svg{width:100%;height:100%}.card h3{color:var(--text)}.card p{font-size:.94rem;margin-top:.5rem;max-width:none}.about-grid{display:grid;grid-template-columns:280px 1fr;gap:5rem;align-items:center}.about-visual{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.about-avatar{width:180px;height:180px;border-radius:50%;object-fit:cover;object-position:center top;border:3px solid var(--border);box-shadow:0 0 40px #4f8ef733,0 8px 32px #00000080;filter:grayscale(100%) contrast(1.05);transition:filter .4s ease,box-shadow .4s ease}.about-avatar:hover{filter:grayscale(60%) contrast(1.05);box-shadow:0 0 50px #4f8ef74d,0 8px 32px #00000080}.about-links{display:flex;gap:.75rem}.about-links a{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);transition:all var(--transition)}.about-links a svg{width:18px;height:18px}.about-links a:hover{color:var(--accent);border-color:var(--accent);background:#4f8ef714}.about-text h2,.about-text p{margin-bottom:1rem}.about-text a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;transition:color var(--transition)}.about-text a:hover{color:var(--accent-2)}.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}.tag{padding:.3rem .8rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;font-size:.82rem;font-family:var(--font-mono);color:var(--text-muted);transition:all var(--transition)}.tag:hover{color:var(--accent);border-color:var(--accent)}.contact-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:5rem;align-items:start}.contact-intro h2{margin-bottom:1rem}.contact-intro p{margin-bottom:.75rem}.contact-email-hint{font-size:.88rem;margin-top:1.5rem}.contact-email-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:.4rem;color:var(--accent);font-weight:500;font-size:.95rem;text-decoration:underline;text-underline-offset:3px;transition:color var(--transition)}.contact-email-link:hover{color:var(--accent-2)}.contact-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;display:flex;flex-direction:column;gap:1.25rem}.hp-field{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;pointer-events:none;opacity:0;tab-index:-1}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-size:.88rem;font-weight:500;color:var(--text-muted)}.required{color:var(--accent)}.form-group input,.form-group textarea{width:100%;padding:.7rem .9rem;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-sans);font-size:.95rem;transition:border-color var(--transition),box-shadow var(--transition);outline:none;resize:vertical}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-dim)}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f8ef726}.form-group input.error,.form-group textarea.error{border-color:#e05c5c}.form-note{font-size:.78rem;color:var(--text-dim);text-align:center;max-width:none;margin-top:-.25rem}.site-footer{border-top:1px solid var(--border);padding-block:1.5rem}.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.footer-name{font-size:.88rem;color:var(--text-dim);font-weight:500}.footer-badge{font-size:.78rem;color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.03em}.footer-links{display:flex;gap:1.5rem}.footer-links a{font-size:.85rem;color:var(--text-dim);transition:color var(--transition)}.footer-links a:hover{color:var(--accent)}@media(max-width:900px){.hero-inner{grid-template-columns:1fr;text-align:center;gap:3rem}.hero-text h1{font-size:clamp(2.4rem,8vw,3.5rem)}.hero-sub{margin-inline:auto}.hero-actions{justify-content:center}.cards{grid-template-columns:repeat(2,1fr);max-width:none}.about-grid{grid-template-columns:1fr;gap:2.5rem;text-align:center}.about-visual{margin-inline:auto}.tags{justify-content:center}.about-text p{margin-inline:auto}.contact-grid{grid-template-columns:1fr;gap:2.5rem}.contact-intro{text-align:center}.contact-intro p{margin-inline:auto}}@media(max-width:600px){.nav-links{display:none}.nav-links.open{display:flex;flex-direction:column;position:fixed;top:var(--nav-h);left:0;right:0;background:var(--bg);border-bottom:1px solid var(--border);padding:1rem;gap:.25rem}.nav-links.open a{display:block;padding:.75rem 1rem;border-radius:var(--radius-sm)}.nav-toggle{display:flex}.cards{grid-template-columns:1fr;max-width:none}}@media(prefers-reduced-motion:no-preference){.card,.about-avatar,.about-links a{transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition),background var(--transition),color var(--transition),opacity var(--transition)}}.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.testimonial{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem;display:flex;flex-direction:column;gap:1.25rem;position:relative}.testimonial:before{content:"\201c";position:absolute;top:1rem;right:1.5rem;font-size:4rem;line-height:1;color:var(--accent);opacity:.15;font-family:Georgia,serif;pointer-events:none}.testimonial p{font-size:.92rem;line-height:1.7;color:var(--text-muted);font-style:italic;max-width:none;flex:1}.testimonial footer{border-top:1px solid var(--border);padding-top:1rem;display:flex;flex-direction:column;gap:.2rem}.testimonial footer strong{font-size:.9rem;color:var(--text);font-weight:600}.testimonial footer span{font-size:.78rem;color:var(--text-dim)}@media(max-width:900px){.testimonials{grid-template-columns:1fr;max-width:540px;margin-inline:auto}}.anim-hidden{opacity:0;transform:translateY(22px);transition:opacity .55s ease,transform .55s ease}.anim-visible{opacity:1;transform:translateY(0)}
