.logo{display:inline-flex;align-items:center;gap:12px;-webkit-user-select:none;user-select:none}.logo-mark{position:relative;isolation:isolate;display:grid;place-items:center;width:44px;height:44px}.logo-mark-box{fill:#0c0c14;stroke:#ffffff1f;stroke-width:1.2}.logo-mark-glow{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:12px;background:var(--grad-brand);filter:blur(16px);opacity:.35;z-index:-1;transition:opacity .3s ease}.logo:hover .logo-mark-glow{opacity:.6}.logo-word{display:flex;flex-direction:column;line-height:1}.logo-word-main{font-family:var(--font-display);font-weight:700;font-size:1.25rem;letter-spacing:-.01em;color:var(--text)}.logo-word-sub{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.42em;margin-top:3px;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .3s ease,backdrop-filter .3s ease,border-color .3s ease;border-bottom:1px solid transparent}.nav--scrolled{background:#0a0a0fb8;-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);border-bottom:1px solid var(--border)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:76px}.nav-links{display:flex;align-items:center;gap:6px}.nav-link{position:relative;padding:8px 14px;font-size:.95rem;font-weight:500;color:var(--text-dim);border-radius:999px;transition:color .2s ease,background .2s ease}.nav-link:after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;background:var(--grad-brand);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.nav-link:hover{color:var(--text)}.nav-link:hover:after{transform:scaleX(1)}.nav-cta{margin-left:10px;padding:10px 20px;font-size:.9rem}.nav-burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;background:var(--surface);border:1px solid var(--border);border-radius:12px;cursor:pointer}.nav-burger span{display:block;width:20px;height:2px;margin:0 auto;background:var(--text);border-radius:2px;transition:transform .3s ease,opacity .2s ease}.nav-burger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-burger.is-open span:nth-child(2){opacity:0}.nav-burger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-mobile{display:none;flex-direction:column;gap:6px;padding:18px 24px 28px;background:#0a0a0ff5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border)}.nav-mobile a:not(.btn){padding:14px 8px;font-family:var(--font-display);font-size:1.1rem;color:var(--text-dim);border-bottom:1px solid var(--border)}.nav-mobile .btn{margin-top:14px;justify-content:center}@media (max-width: 860px){.nav-links{display:none}.nav-burger,.nav-mobile{display:flex}}.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding-top:120px;padding-bottom:80px;overflow:hidden}.hero-inner{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:56px}.hero-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;z-index:-1;animation:orbFloat 14s ease-in-out infinite}.hero-orb--1{width:460px;height:460px;top:-120px;left:-100px;background:radial-gradient(circle,rgba(168,85,247,.55),transparent 70%)}.hero-orb--2{width:520px;height:520px;bottom:-160px;right:-120px;background:radial-gradient(circle,rgba(34,211,238,.45),transparent 70%);animation-delay:-7s}@keyframes orbFloat{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30px,-40px) scale(1.1)}}.hero-badge{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.85rem;color:var(--text-dim);font-family:var(--font-mono);margin-bottom:28px}.hero-badge-dot{width:9px;height:9px;border-radius:50%;background:var(--teal);box-shadow:0 0 #2dd4bf99;animation:pulse 2.4s infinite}@keyframes pulse{0%{box-shadow:0 0 #2dd4bf99}70%{box-shadow:0 0 0 10px #2dd4bf00}to{box-shadow:0 0 #2dd4bf00}}.hero-title{font-family:var(--font-display);font-weight:700;font-size:clamp(2.6rem,6.5vw,4.6rem);line-height:1.02;letter-spacing:-.03em;margin-bottom:24px}.hero-lead{font-size:clamp(1.02rem,2vw,1.2rem);color:var(--text-dim);max-width:540px;margin-bottom:34px}.hero-lead strong{color:var(--text);font-weight:600}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:40px}.hero-stack{display:flex;flex-wrap:wrap;gap:8px}.hero-stack-item{font-family:var(--font-mono);font-size:.78rem;padding:6px 12px;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);background:var(--surface);transition:color .2s ease,border-color .2s ease}.hero-stack-item:hover{color:var(--teal);border-color:#2dd4bf66}.hero-visual{position:relative;perspective:1000px}.code-window{overflow:hidden;transform:rotateY(-6deg) rotateX(3deg);transition:transform .4s ease}.code-window:hover{transform:rotateY(0) rotateX(0)}.code-window-bar{display:flex;align-items:center;gap:8px;padding:14px 18px;background:#ffffff08;border-bottom:1px solid var(--border)}.dot{width:12px;height:12px;border-radius:50%}.dot--red{background:#ff5f57}.dot--amber{background:#febc2e}.dot--green{background:#28c840}.code-window-file{margin-left:12px;font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted)}.code-window-body{padding:22px 24px;font-family:var(--font-mono);font-size:.86rem;line-height:1.7;color:#cdd3e0;overflow-x:auto}.code-window-body code{white-space:pre}.hero-float--stat{position:absolute;bottom:-28px;left:-28px;display:flex;flex-direction:column;padding:16px 22px;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:16px;box-shadow:var(--shadow-card)}.hero-float--stat strong{font-family:var(--font-display);font-size:1.7rem;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-float--stat span{font-size:.78rem;color:var(--text-muted)}.hero-scroll{position:absolute;bottom:28px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--text-muted)}.hero-scroll-line{width:1px;height:40px;background:linear-gradient(var(--teal),transparent);animation:scrollPulse 2s ease-in-out infinite}@keyframes scrollPulse{0%,to{opacity:.3;transform:scaleY(.6)}50%{opacity:1;transform:scaleY(1)}}@media (max-width: 960px){.hero-inner{grid-template-columns:1fr;gap:48px}.hero-visual{max-width:460px}.code-window{transform:none}}@media (max-width: 600px){.hero{padding-top:110px}.hero-float--stat{left:0;bottom:-20px}}.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}.about-text{color:var(--text-dim);font-size:1.05rem;margin-bottom:18px;max-width:560px}.about-quote{margin-top:30px;padding:20px 26px;border-left:3px solid transparent;border-image:var(--grad-brand) 1;background:var(--surface);border-radius:0 14px 14px 0}.about-quote p{font-family:var(--font-display);font-size:1.1rem;font-style:italic;color:var(--text)}.about-side{display:flex;flex-direction:column;gap:28px}.about-portrait{position:relative}.about-portrait-glow{position:absolute;top:-10%;right:-10%;bottom:-10%;left:-10%;background:var(--grad-brand);filter:blur(60px);opacity:.22;z-index:-1;border-radius:30px}.about-portrait-img{width:100%;aspect-ratio:4 / 5;object-fit:cover;border-radius:var(--radius);display:block}.placeholder{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1.5px dashed var(--border-strong);border-radius:var(--radius);background:repeating-linear-gradient(45deg,rgba(255,255,255,.02),rgba(255,255,255,.02) 12px,transparent 12px,transparent 24px),var(--bg-card);color:var(--text-muted);text-align:center;padding:24px}.placeholder--portrait{aspect-ratio:4 / 5}.placeholder-label{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--text-dim)}.placeholder-hint{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted)}.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px}.about-stat{display:flex;flex-direction:column;padding:18px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color .25s ease,transform .25s ease}.about-stat:hover{transform:translateY(-3px);border-color:var(--border-strong)}.about-stat strong{font-family:var(--font-display);font-size:1.7rem;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.about-stat span{font-size:.82rem;color:var(--text-muted)}@media (max-width: 900px){.about-grid{grid-template-columns:1fr;gap:44px}.about-portrait{max-width:360px}}.skills-head{text-align:center;display:flex;flex-direction:column;align-items:center;margin-bottom:56px}.skills-head .section-eyebrow:before{display:none}.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.skill-card{position:relative;padding:28px 24px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .3s ease,border-color .3s ease}.skill-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad-brand);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}.skill-card:hover{transform:translateY(-6px);border-color:var(--border-strong)}.skill-card:hover:before{transform:scaleX(1)}.skill-card-icon{display:grid;place-items:center;width:46px;height:46px;margin-bottom:18px;border-radius:12px;font-size:1.3rem;background:var(--surface);border:1px solid var(--border);color:var(--teal)}.skill-card-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600;margin-bottom:16px}.skill-card-list li{position:relative;padding-left:18px;font-size:.92rem;color:var(--text-dim);margin-bottom:9px}.skill-card-list li:before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--grad-brand)}@media (max-width: 980px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 520px){.skills-grid{grid-template-columns:1fr}}.services{background:radial-gradient(60% 50% at 100% 0%,rgba(124,58,237,.08),transparent 60%)}.services-head{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:end;margin-bottom:48px}.services-head .section-sub{justify-self:end}.services-list{display:flex;flex-direction:column}.service-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:28px;padding:30px 24px;border-top:1px solid var(--border);border-radius:16px;transition:background .3s ease,transform .3s ease}.service-row:last-child{border-bottom:1px solid var(--border)}.service-row:hover{background:var(--surface);transform:translate(6px)}.service-num{font-family:var(--font-mono);font-size:.95rem;color:var(--text-muted)}.service-title{font-family:var(--font-display);font-size:1.35rem;font-weight:600;margin-bottom:6px}.service-desc{color:var(--text-dim);font-size:.98rem;max-width:560px}.service-tags{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.service-tags span{font-family:var(--font-mono);font-size:.72rem;padding:4px 10px;border:1px solid var(--border);border-radius:7px;color:var(--text-muted);white-space:nowrap}.service-arrow{font-size:1.4rem;color:var(--text-muted);transition:transform .3s ease,color .3s ease}.service-row:hover .service-arrow{transform:translate(6px);color:var(--teal)}@media (max-width: 860px){.services-head{grid-template-columns:1fr}.services-head .section-sub{justify-self:start}.service-row{grid-template-columns:auto 1fr;grid-template-areas:"num body" "tags tags";gap:12px 20px}.service-num{grid-area:num}.service-body{grid-area:body}.service-tags{grid-area:tags;flex-direction:row;flex-wrap:wrap;align-items:flex-start;margin-top:6px}.service-arrow{display:none}}.projects-head{text-align:center;display:flex;flex-direction:column;align-items:center;margin-bottom:56px}.projects-head .section-eyebrow:before{display:none}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}.project-card{display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}.project-card:hover{transform:translateY(-8px);border-color:var(--border-strong);box-shadow:var(--shadow-card)}.project-media{position:relative;display:block;aspect-ratio:16 / 10;overflow:hidden;background:var(--bg-elev)}.project-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.project-card:hover .project-media img{transform:scale(1.05)}.placeholder--shot{width:100%;height:100%;border:none;border-radius:0;border-bottom:1px solid var(--border)}.project-media-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;padding:18px;background:linear-gradient(to top,color-mix(in srgb,var(--accent) 30%,rgba(6,6,12,.85)),transparent 60%);opacity:0;transition:opacity .35s ease}.project-media:hover .project-media-overlay{opacity:1}.project-visit{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:#0a0a0fb3;border:1px solid var(--border-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:999px;font-family:var(--font-display);font-weight:600;font-size:.85rem}.project-info{display:flex;flex-direction:column;flex:1;padding:26px 26px 28px}.project-meta{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:12px}.project-category{color:var(--teal)}.project-title{font-family:var(--font-display);font-size:1.5rem;font-weight:700;margin-bottom:12px}.project-blurb{color:var(--text-dim);font-size:.95rem;margin-bottom:20px;flex:1}.project-tags{display:flex;flex-wrap:wrap;gap:8px}.project-tags span{font-family:var(--font-mono);font-size:.72rem;padding:5px 11px;border:1px solid var(--border);border-radius:7px;color:var(--text-muted)}.projects-more{margin-top:56px;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}.projects-more p{color:var(--text-dim)}@media (max-width: 820px){.projects-grid{grid-template-columns:1fr}}.contact{padding-bottom:0}.contact-card{position:relative;border-radius:28px;border:1px solid var(--border-strong);background:linear-gradient(180deg,var(--bg-elev),var(--bg-card));overflow:hidden}.contact-card-glow{position:absolute;top:-40%;left:50%;transform:translate(-50%);width:70%;height:80%;background:var(--grad-brand);filter:blur(90px);opacity:.18;pointer-events:none}.contact-inner{position:relative;display:grid;grid-template-columns:1.3fr .7fr;gap:48px;padding:clamp(36px,6vw,64px)}.contact-text{color:var(--text-dim);font-size:1.08rem;max-width:520px;margin-bottom:32px}.contact-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px}.contact-location{font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted)}.contact-links{display:flex;flex-direction:column;gap:12px;justify-content:center}.contact-link{position:relative;display:flex;flex-direction:column;padding:18px 22px;border:1px solid var(--border);border-radius:14px;background:var(--surface);transition:transform .25s ease,border-color .25s ease,background .25s ease}.contact-link:hover{transform:translate(4px);border-color:var(--teal);background:#2dd4bf0f}.contact-link-label{font-family:var(--font-display);font-weight:600;font-size:1rem}.contact-link-handle{font-family:var(--font-mono);font-size:.82rem;color:var(--text-muted);margin-top:2px}.contact-link-arrow{position:absolute;top:18px;right:20px;color:var(--text-muted);transition:color .25s ease,transform .25s ease}.contact-link:hover .contact-link-arrow{color:var(--teal);transform:translate(2px,-2px)}.footer{margin-top:clamp(64px,10vw,110px);border-top:1px solid var(--border);padding:36px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.footer-tag{font-size:.85rem;color:var(--text-muted);text-align:center;flex:1;min-width:220px}.footer-top{font-family:var(--font-mono);font-size:.82rem;color:var(--text-dim);transition:color .2s ease}.footer-top:hover{color:var(--teal)}@media (max-width: 820px){.contact-inner{grid-template-columns:1fr;gap:36px}}:root{--bg: #0a0a0f;--bg-elev: #11111a;--bg-card: #14141f;--surface: rgba(255, 255, 255, .03);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--text: #f4f4f8;--text-dim: #b4b4c4;--text-muted: #6c6c80;--violet: #7c3aed;--violet-bright: #a855f7;--teal: #2dd4bf;--cyan: #22d3ee;--pink: #ec4899;--grad-brand: linear-gradient(120deg, #a855f7 0%, #22d3ee 60%, #2dd4bf 100%);--grad-brand-soft: linear-gradient(120deg, #7c3aed 0%, #22d3ee 100%);--grad-warm: linear-gradient(120deg, #ec4899 0%, #a855f7 100%);--glow-violet: 0 0 40px rgba(168, 85, 247, .35);--glow-cyan: 0 0 40px rgba(34, 211, 238, .3);--shadow-card: 0 20px 60px -20px rgba(0, 0, 0, .7);--maxw: 1200px;--radius: 18px;--radius-sm: 12px;--font-display: "Space Grotesk", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-weight:400;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background:radial-gradient(60% 50% at 15% 10%,rgba(124,58,237,.18),transparent 60%),radial-gradient(50% 50% at 85% 20%,rgba(34,211,238,.14),transparent 60%),radial-gradient(60% 60% at 50% 100%,rgba(45,212,191,.1),transparent 60%);pointer-events:none}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 30%,#000 40%,transparent 80%);mask-image:radial-gradient(ellipse 80% 60% at 50% 30%,#000 40%,transparent 80%);pointer-events:none}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}ul{list-style:none}::selection{background:#a855f766;color:#fff}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}.section{position:relative;padding:clamp(72px,12vw,140px) 0}.section-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);margin-bottom:16px}.section-eyebrow:before{content:"";width:28px;height:1px;background:var(--teal);opacity:.7}.section-title{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,5vw,3.2rem);line-height:1.05;letter-spacing:-.02em;margin-bottom:18px}.section-sub{color:var(--text-dim);font-size:clamp(1rem,2vw,1.15rem);max-width:620px}.gradient-text{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.btn{position:relative;display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:999px;font-family:var(--font-display);font-weight:600;font-size:.98rem;cursor:pointer;border:1px solid transparent;transition:transform .25s ease,box-shadow .25s ease,background .25s ease;will-change:transform}.btn-primary{background:var(--grad-brand-soft);color:#06060a;box-shadow:0 10px 30px -10px #7c3aed99}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 18px 40px -12px #22d3ee99}.btn-ghost{background:var(--surface);border:1px solid var(--border-strong);color:var(--text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-ghost:hover{transform:translateY(-3px);border-color:var(--teal);box-shadow:var(--glow-cyan)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.glow-divider{height:1px;width:100%;background:linear-gradient(90deg,transparent,var(--border-strong),transparent)}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
