:root{color-scheme:dark;--bg: #0a0f14;--panel: rgba(20, 28, 36, .72);--panel-solid: #111a22;--surface: rgba(255, 255, 255, .04);--stroke: rgba(255, 255, 255, .12);--text: #edf4fb;--text-dim: #9eb3c5;--primary: #59d8ff;--primary-strong: #1bb8f2;--accent: #ffd166;--radius: 20px;--radius-sm: 12px;--container: min(1120px, 92vw);--shadow: 0 24px 60px rgba(0, 0, 0, .25);--font-title: "Space Grotesk", sans-serif;--font-body: "Manrope", sans-serif}[data-theme=light]{color-scheme:light;--bg: #edf2f7;--panel: rgba(255, 255, 255, .82);--panel-solid: #ffffff;--surface: rgba(10, 21, 36, .03);--stroke: rgba(10, 21, 36, .15);--text: #111c28;--text-dim: #4e6478;--primary: #0078ad;--primary-strong: #005f89;--accent: #c98500;--shadow: 0 20px 50px rgba(24, 52, 74, .12)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-body);background:radial-gradient(1200px 720px at 8% 15%,rgba(89,216,255,.15),transparent 65%),radial-gradient(1000px 660px at 90% 5%,rgba(255,209,102,.12),transparent 65%),var(--bg);color:var(--text);line-height:1.6;overflow-x:hidden}body.menu-open{overflow:hidden}.skip-link{position:fixed;top:-48px;left:16px;z-index:100;padding:8px 12px;border-radius:8px;background:var(--primary);color:#032433;font-weight:700;transition:top .2s ease}.skip-link:focus-visible{top:12px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;clip:rect(0 0 0 0);overflow:hidden}.bg-grid{position:fixed;inset:0;pointer-events:none;opacity:.35;background-image:linear-gradient(to right,rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.03) 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(circle at center,black 42%,transparent 88%);mask-image:radial-gradient(circle at center,black 42%,transparent 88%);z-index:-2}#cursor-glow{position:fixed;width:360px;height:360px;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);background:radial-gradient(circle,#59d8ff2e,#59d8ff00 70%);z-index:-1;opacity:0;transition:opacity .2s ease}h1,h2,h3,.logo,.btn{font-family:var(--font-title)}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid rgba(89,216,255,.6);outline-offset:2px}.site-header{position:sticky;top:0;z-index:40;display:flex;justify-content:center;padding:calc(12px + env(safe-area-inset-top)) 0 16px}.nav-shell{width:var(--container);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 16px;border:1px solid var(--stroke);border-radius:999px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:var(--panel)}.logo{font-size:1.25rem;font-weight:700;letter-spacing:-.03em}.site-nav{display:flex;align-items:center;gap:20px}.site-nav a{font-size:.95rem;color:var(--text-dim);padding:6px 0;position:relative;transition:color .25s ease}.site-nav a:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;border-radius:2px;transform:scaleX(0);transform-origin:left;background:var(--primary);transition:transform .25s ease}.site-nav a:hover,.site-nav a.active{color:var(--text)}.site-nav a:hover:after,.site-nav a.active:after{transform:scaleX(1)}.nav-controls{display:flex;align-items:center;gap:10px}.theme-toggle,.menu-toggle{width:40px;height:40px;border:1px solid var(--stroke);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer;display:grid;place-items:center;transition:transform .2s ease,border-color .2s ease}.theme-toggle:hover,.menu-toggle:hover{transform:translateY(-1px);border-color:var(--primary)}.menu-toggle{display:none;gap:4px}.menu-toggle span{display:block;width:16px;height:2px;background:var(--text);transition:transform .25s ease,opacity .25s ease}.menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.section-wrap{width:var(--container);margin:0 auto}.hero{padding:clamp(72px,10vh,108px) 0 72px}.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;color:var(--primary);font-weight:700}.hero h1{font-size:clamp(2.2rem,7vw,5rem);line-height:1;margin-top:10px;letter-spacing:-.03em}.hero-subtitle{margin-top:14px;font-size:clamp(1rem,2.3vw,1.45rem);color:var(--text-dim)}.hero-subtitle span{color:var(--accent);font-weight:700}.hero-copy{max-width:62ch;margin-top:14px;color:var(--text-dim)}.hero-cta{margin-top:30px;display:flex;flex-wrap:wrap;gap:12px}.btn{border-radius:999px;font-size:.88rem;letter-spacing:.07em;text-transform:uppercase;font-weight:700;padding:12px 22px;border:1px solid transparent;transition:transform .2s ease,background-color .2s ease,color .2s ease}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--primary);border-color:var(--primary);color:#032433}.btn-primary:hover{background:var(--primary-strong);border-color:var(--primary-strong)}.btn-ghost{background:transparent;border-color:var(--stroke);color:var(--text)}.btn-ghost:hover{border-color:var(--text-dim)}.hero-metrics{margin-top:34px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.hero-metrics article{padding:16px;border-radius:var(--radius-sm);border:1px solid var(--stroke);background:var(--surface)}.hero-metrics h3{font-size:1.2rem}.hero-metrics p{font-size:.88rem;color:var(--text-dim)}.section-head{max-width:760px}.section-head h2{margin-top:10px;font-size:clamp(1.8rem,3.6vw,2.8rem);line-height:1.14;letter-spacing:-.02em}#about,#projects,#contact{padding:70px 0}.about-grid{margin-top:24px;display:grid;grid-template-columns:1.1fr .9fr;gap:24px}.about-text{border:1px solid var(--stroke);background:var(--panel);border-radius:var(--radius);padding:clamp(20px,3vw,30px)}.about-text p{color:var(--text-dim);margin-top:8px}.skills{border:1px solid var(--stroke);border-radius:var(--radius);background:var(--panel);padding:clamp(20px,3vw,30px);display:flex;flex-wrap:wrap;align-content:flex-start;gap:10px}.skills span{font-size:.86rem;padding:8px 12px;border-radius:999px;border:1px solid var(--stroke);background:var(--surface)}.projects-grid{margin-top:28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.project-card{background:var(--panel);border:1px solid var(--stroke);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s ease,border-color .25s ease}.project-card:hover{transform:translateY(-5px);border-color:#59d8ff73}.project-visual{min-height:140px;display:flex;align-items:center;justify-content:center;font-family:var(--font-title);font-size:1.4rem;font-weight:700;color:#f6fbff}.project-body{padding:18px}.project-body h3{font-size:1.08rem;line-height:1.3}.project-body p{margin-top:8px;color:var(--text-dim);font-size:.93rem}.project-body a{margin-top:14px;display:inline-flex;align-items:center;gap:8px;color:var(--primary);font-weight:700;font-size:.88rem}.project-body a:after{content:"→";transition:transform .2s ease}.project-body a:hover:after{transform:translate(4px)}.contact-card{border-radius:var(--radius);border:1px solid var(--stroke);background:var(--panel);padding:clamp(22px,4vw,40px)}.contact-copy{margin-top:12px;color:var(--text-dim)}.contact-quick-links{margin-top:16px;display:flex;flex-wrap:wrap;gap:10px}.contact-quick-links a{font-size:.86rem;color:var(--text-dim);border:1px solid var(--stroke);border-radius:999px;padding:6px 10px;background:var(--surface)}.contact-quick-links a:hover{color:var(--text)}.contact-form{margin-top:22px;display:grid;gap:10px}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--stroke);background:var(--surface);border-radius:10px;color:var(--text);font-family:var(--font-body);font-size:.95rem;padding:12px 14px}.contact-form input:focus,.contact-form textarea:focus{outline:2px solid rgba(89,216,255,.3);border-color:#59d8ffa6}.contact-form button{justify-self:start}.form-feedback{margin-top:12px;font-size:.9rem;color:var(--text-dim);min-height:1.4em}footer{margin-top:26px;border-top:1px solid var(--stroke);background:var(--panel-solid)}.footer-shell{width:var(--container);margin:0 auto;padding:22px 0;display:flex;justify-content:space-between;align-items:center;gap:14px}.footer-shell p,.social-links a{color:var(--text-dim);font-size:.92rem}.social-links{display:flex;gap:14px}.social-links a:hover{color:var(--text)}.section-reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}.section-reveal.is-visible{opacity:1;transform:translateY(0)}.gradient-1{background:linear-gradient(120deg,#004e92,#55d8ff)}.gradient-2{background:linear-gradient(120deg,#8e2b07,#f4b000)}.gradient-3{background:linear-gradient(120deg,#196548,#6dbb30)}.gradient-4{background:linear-gradient(120deg,#7c1e7c,#3046cf)}.gradient-5{background:linear-gradient(120deg,#0e7490,#42c7df)}.gradient-6{background:linear-gradient(120deg,#ad2f1d,#ff6a4f)}.gradient-7{background:linear-gradient(120deg,#c44870,#fc9d73)}.gradient-8{background:linear-gradient(120deg,#4f2ec6,#7b65ff)}.gradient-9{background:linear-gradient(120deg,#0f766e,#38b2ac)}.gradient-10{background:linear-gradient(120deg,#3f4c5c,#6a7481)}@media(max-width:980px){.projects-grid,.about-grid{grid-template-columns:1fr}}@media(max-width:820px){.menu-toggle{display:grid}.site-nav{position:absolute;top:calc(100% + 10px);right:0;width:min(240px,84vw);background:var(--panel-solid);border:1px solid var(--stroke);border-radius:14px;padding:10px;flex-direction:column;align-items:stretch;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .2s ease,transform .2s ease,visibility .2s}.site-nav a{padding:9px 10px;border-radius:8px}.site-nav a:after{display:none}.site-nav a:hover,.site-nav a.active{background:var(--surface)}.nav-shell.menu-open .site-nav{opacity:1;visibility:visible;transform:translateY(0)}.hero{padding-top:48px}.hero-metrics{grid-template-columns:1fr}}@media(max-width:560px){.nav-shell{border-radius:16px;padding:10px 12px}.hero-cta{flex-direction:column;align-items:stretch}.btn{text-align:center}.contact-form button{justify-self:stretch}.contact-quick-links{flex-direction:column;align-items:stretch}.contact-quick-links a{text-align:center}.footer-shell{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
