@import url("https://api.fontshare.com/v2/css?f[]=cabinet-grotesk@400,500,700,800,900&f[]=satoshi@300,400,500,700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Space+Mono:ital,wght@0,400;0,700;1,400&display=swap");:root{--text-xs:clamp(0.75rem,0.7rem + 0.25vw,0.875rem);--text-sm:clamp(0.875rem,0.8rem + 0.35vw,1rem);--text-base:clamp(1rem,0.95rem + 0.25vw,1.125rem);--text-lg:clamp(1.125rem,1rem + 0.75vw,1.5rem);--text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);--text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);--text-3xl:clamp(2.5rem,1rem + 4vw,5rem);--text-hero:clamp(3rem,0.5rem + 7vw,7.5rem);--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--transition:180ms cubic-bezier(0.16,1,0.3,1);--font-display:"Cabinet Grotesk","Helvetica Neue",sans-serif;--font-body:"Satoshi","Helvetica Neue",sans-serif;--font-mono:"Space Mono","Courier New",monospace;--content-narrow:640px;--content-default:960px;--content-wide:1200px}:root,[data-theme=dark]{--color-bg:#0b0c0e;--color-surface:#111215;--color-surface-2:#161820;--color-surface-offset:#1c1e28;--color-surface-dynamic:#242736;--color-divider:#1f2230;--color-border:#282b3a;--color-text:#e8eaf0;--color-text-muted:#8890a8;--color-text-faint:#4a5068;--color-text-inverse:#0b0c0e;--color-primary:#00d4aa;--color-primary-hover:#00b894;--color-primary-active:#009977;--color-primary-dim:rgba(0,212,170,0.12);--color-primary-glow:rgba(0,212,170,0.25);--color-accent:#6c63ff;--color-accent-dim:rgba(108,99,255,0.12);--color-amber:#f59e0b;--color-amber-dim:rgba(245,158,11,0.12);--color-error:#ff5470;--color-success:#00d4aa;--shadow-sm:0 1px 3px rgba(0,0,0,0.4);--shadow-md:0 4px 16px rgba(0,0,0,0.5);--shadow-lg:0 12px 40px rgba(0,0,0,0.6);--shadow-glow:0 0 40px rgba(0,212,170,0.15)}[data-theme=light]{--color-bg:#f5f5f7;--color-surface:#ffffff;--color-surface-2:#f8f8fb;--color-surface-offset:#eeeef5;--color-surface-dynamic:#e5e5ee;--color-divider:#dcdde8;--color-border:#d0d2e0;--color-text:#12141e;--color-text-muted:#5a5f78;--color-text-faint:#9ea3b8;--color-text-inverse:#ffffff;--color-primary:#007a60;--color-primary-hover:#006050;--color-primary-active:#004a3e;--color-primary-dim:rgba(0,122,96,0.1);--color-primary-glow:rgba(0,122,96,0.15);--color-accent:#5048e5;--color-accent-dim:rgba(80,72,229,0.1);--color-amber:#d97706;--color-amber-dim:rgba(217,119,6,0.1);--shadow-sm:0 1px 3px rgba(0,0,0,0.08);--shadow-md:0 4px 16px rgba(0,0,0,0.1);--shadow-lg:0 12px 40px rgba(0,0,0,0.12);--shadow-glow:0 0 40px rgba(0,122,96,0.1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth;scroll-padding-top:80px}body{min-height:100dvh;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);line-height:1.65;overflow-x:hidden}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4,h5,h6{text-wrap:balance;line-height:1.1}li,p{text-wrap:pretty}::selection{background:var(--color-primary-dim);color:var(--color-primary)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}[role=button],a,button{transition:color var(--transition),background var(--transition),border-color var(--transition),box-shadow var(--transition),opacity var(--transition)}button{cursor:pointer;background:none;border:none}.skip-link{position:absolute;top:-100%;left:var(--space-4);z-index:999;background:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:600;text-decoration:none;font-size:var(--text-sm)}.skip-link:focus{top:var(--space-4)}.display{font-family:var(--font-display);font-weight:800}.mono{font-family:var(--font-mono)}.text-muted{color:var(--color-text-muted)}.text-primary{color:var(--color-primary)}.text-accent{color:var(--color-accent)}.nav{position:fixed;top:0;left:0;right:0;z-index:100;justify-content:space-between;padding:0 var(--space-8);height:72px;background:oklch(from var(--color-bg) l c h/.85);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border-bottom:1px solid oklch(from var(--color-border) l c h/.5);transition:background var(--transition),border-color var(--transition)}.nav,.nav-logo{display:flex;align-items:center}.nav-logo{gap:var(--space-3);text-decoration:none;color:var(--color-text)}.nav-logo-mark{width:36px;height:36px;flex-shrink:0}.nav-logo-text{font-family:var(--font-display);font-weight:800;font-size:var(--text-base);letter-spacing:-.02em}.nav-links{display:flex;align-items:center;gap:var(--space-6);list-style:none}.nav-links a{text-decoration:none;color:var(--color-text-muted);font-size:var(--text-sm);font-weight:500;letter-spacing:.01em}.nav-links a:hover{color:var(--color-text)}.nav-actions{gap:var(--space-3)}.nav-actions,.theme-toggle{display:flex;align-items:center}.theme-toggle{width:40px;height:40px;border-radius:var(--radius-full);justify-content:center;color:var(--color-text-muted);border:1px solid var(--color-border);background:var(--color-surface)}.theme-toggle:hover{color:var(--color-text);border-color:var(--color-primary)}.btn-nav{padding:var(--space-2) var(--space-5);background:var(--color-primary);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:700;text-decoration:none;letter-spacing:.01em;border:1px solid transparent}.btn-nav,.btn-nav:hover{color:var(--color-text-inverse)}.btn-nav:hover{background:var(--color-primary-hover)}.nav-hamburger{display:none;width:40px;height:40px;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.hero,.nav-hamburger{align-items:center;justify-content:center}.hero{position:relative;min-height:100vh;display:flex;padding:calc(72px + var(--space-16)) var(--space-8) var(--space-24);overflow:hidden}.hero-bg{position:absolute;inset:0;z-index:0}.hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.35}.hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0,oklch(from var(--color-bg) l c h/.3) 40%,var(--color-bg) 100%)}.hero-grid-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(oklch(from var(--color-primary) l c h/.04) 1px,transparent 1px),linear-gradient(90deg,oklch(from var(--color-primary) l c h/.04) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,black 30%,transparent 80%)}.hero-content{position:relative;z-index:2;max-width:var(--content-wide);width:100%;margin:0 auto;text-align:left}.hero-eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-primary);letter-spacing:.1em;text-transform:uppercase;padding:var(--space-2) var(--space-4);background:var(--color-primary-dim);border:1px solid oklch(from var(--color-primary) l c h/.25);border-radius:var(--radius-full);margin-bottom:var(--space-8)}.hero-eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--color-primary);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}.hero-title{font-family:var(--font-display);font-weight:900;font-size:var(--text-hero);line-height:.95;letter-spacing:-.03em;margin-bottom:var(--space-8)}.hero-title .line-accent{color:var(--color-primary)}.hero-desc{font-size:var(--text-lg);color:var(--color-text-muted);max-width:56ch;line-height:1.6;margin-bottom:var(--space-12)}.hero-actions{display:flex;gap:var(--space-4);flex-wrap:wrap;align-items:center;margin-bottom:var(--space-16)}.btn-primary{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-8);background:var(--color-primary);color:#000;font-weight:700;font-size:var(--text-sm);border-radius:var(--radius-full);text-decoration:none;letter-spacing:.01em;border:2px solid transparent}.btn-primary:hover{background:var(--color-primary-hover);color:#000;box-shadow:var(--shadow-glow)}.btn-outline{display:inline-flex;align-items:center;gap:var(--space-2);padding:calc(var(--space-4) - 2px) var(--space-8);background:transparent;color:var(--color-text);font-weight:600;font-size:var(--text-sm);border-radius:var(--radius-full);text-decoration:none;border:2px solid var(--color-border);letter-spacing:.01em}.btn-outline:hover{border-color:var(--color-primary);color:var(--color-primary)}.hero-stats{display:flex;gap:var(--space-10);flex-wrap:wrap}.stat-item{display:flex;flex-direction:column;gap:var(--space-1)}.stat-number{font-family:var(--font-display);font-weight:900;font-size:var(--text-2xl);letter-spacing:-.03em;color:var(--color-text);line-height:1}.stat-number span{color:var(--color-primary)}.stat-label{font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase}.tech-strip{padding:var(--space-6) 0;background:var(--color-surface);border-top:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);overflow:hidden}.marquee-track{display:flex;gap:var(--space-12);white-space:nowrap;animation:marquee 28s linear infinite}.marquee-track:hover{animation-play-state:paused}@keyframes marquee{to{transform:translateX(-50%)}}.tech-tag{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.tech-tag .dot{width:4px;height:4px;border-radius:50%;background:var(--color-primary);flex-shrink:0}.section{padding:clamp(var(--space-16),8vw,var(--space-24)) var(--space-8)}.container{max-width:var(--content-wide);margin:0 auto}.container-default{max-width:var(--content-default);margin:0 auto}.section-eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-primary);letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--space-4)}.section-title{font-family:var(--font-display);font-weight:900;font-size:var(--text-2xl);letter-spacing:-.03em;line-height:1.05;margin-bottom:var(--space-4)}.section-desc{font-size:var(--text-base);color:var(--color-text-muted);max-width:58ch;line-height:1.7}.section-header{margin-bottom:var(--space-16)}.services-bg{background:var(--color-surface)}.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:var(--space-4)}.service-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-8);position:relative;overflow:hidden;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.service-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--color-primary),var(--color-accent));opacity:0;transition:opacity var(--transition)}.service-card:hover{border-color:oklch(from var(--color-primary) l c h/.4);box-shadow:var(--shadow-md);transform:translateY(-2px)}.service-card:hover:before{opacity:1}.service-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-dim);border-radius:var(--radius-lg);color:var(--color-primary);margin-bottom:var(--space-6)}.service-title{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);letter-spacing:-.02em;margin-bottom:var(--space-3)}.service-desc{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.7;margin-bottom:var(--space-6)}.service-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tag{font-family:var(--font-mono);font-size:var(--text-xs);padding:var(--space-1) var(--space-3);background:var(--color-surface-offset);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-muted);letter-spacing:.02em}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center}.about-visual{position:relative;border-radius:var(--radius-2xl);overflow:hidden;aspect-ratio:4/3;border:1px solid var(--color-border)}.about-visual img{width:100%;height:100%;object-fit:cover}.about-badge{position:absolute;bottom:var(--space-4);left:var(--space-4);background:oklch(from var(--color-bg) l c h/.9);backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-3) var(--space-4);display:flex;align-items:center;gap:var(--space-3)}.about-badge-dot{width:8px;height:8px;border-radius:50%;background:var(--color-primary);animation:pulse-dot 2s ease-in-out infinite}.about-badge-text{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text)}.about-title{font-family:var(--font-display);font-weight:900;font-size:var(--text-2xl);letter-spacing:-.03em;line-height:1.05}.about-desc,.about-title{margin-bottom:var(--space-6)}.about-desc{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.75}.about-skills{gap:var(--space-3);margin-bottom:var(--space-8)}.about-skills,.skill-row{display:flex;flex-direction:column}.skill-row{gap:var(--space-1)}.skill-header{display:flex;justify-content:space-between;align-items:center}.skill-name{color:var(--color-text-muted);font-weight:500;letter-spacing:.05em;text-transform:uppercase}.skill-name,.skill-pct{font-size:var(--text-xs)}.skill-pct{font-family:var(--font-mono);color:var(--color-primary)}.skill-bar{height:3px;background:var(--color-surface-offset);overflow:hidden}.skill-bar,.skill-fill{border-radius:var(--radius-full)}.skill-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-accent));transition:width 1.2s cubic-bezier(.16,1,.3,1)}.projects-bg{background:var(--color-surface)}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.project-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-2xl);overflow:hidden;transition:box-shadow var(--transition),transform var(--transition),border-color var(--transition)}.project-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:oklch(from var(--color-primary) l c h/.3)}.project-card.featured{grid-column:span 2}.project-header{padding:var(--space-8);border-bottom:1px solid var(--color-divider)}.project-label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-primary);letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--space-3)}.project-title{font-family:var(--font-display);font-weight:800;font-size:var(--text-xl);letter-spacing:-.02em;margin-bottom:var(--space-4)}.project-desc{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.7}.project-body{padding:var(--space-6) var(--space-8) var(--space-8)}.project-stack{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.project-links{display:flex;gap:var(--space-3)}.project-link{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:600;color:var(--color-primary);text-decoration:none;letter-spacing:.02em;text-transform:uppercase}.project-link:hover{color:var(--color-primary-hover)}.bento-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:auto;gap:var(--space-4)}.bento-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--space-8);overflow:hidden;position:relative;transition:box-shadow var(--transition),border-color var(--transition)}.bento-card:hover{box-shadow:var(--shadow-md);border-color:oklch(from var(--color-primary) l c h/.3)}.bento-card.col-4{grid-column:span 4}.bento-card.col-6{grid-column:span 6}.bento-card.col-8{grid-column:span 8}.bento-card.col-12{grid-column:span 12}.bento-title{font-family:var(--font-display);font-weight:800;font-size:var(--text-lg);letter-spacing:-.02em;margin-bottom:var(--space-4)}.bento-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-dim);border-radius:var(--radius-lg);margin-bottom:var(--space-5)}.bento-icon,.bento-value{color:var(--color-primary)}.bento-value{font-family:var(--font-display);font-weight:900;font-size:var(--text-3xl);letter-spacing:-.04em;line-height:1}.bento-label{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-2);text-transform:uppercase;letter-spacing:.05em}.bento-list{list-style:none;flex-direction:column}.bento-list,.bento-list li{display:flex;gap:var(--space-3)}.bento-list li{align-items:center;font-size:var(--text-sm);color:var(--color-text-muted)}.bento-list li:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-primary);flex-shrink:0}.bento-accent-bg{background:linear-gradient(135deg,var(--color-primary-dim),var(--color-accent-dim))}.bento-code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.8;background:var(--color-surface-offset);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);margin-top:var(--space-4);overflow:hidden}.bento-code .kw{color:var(--color-accent)}.bento-code .str{color:var(--color-amber)}.bento-code .fn{color:var(--color-primary)}.bento-code .cm{color:var(--color-text-faint)}.process-list{display:flex;flex-direction:column;position:relative;padding-left:var(--space-10)}.process-list:before{content:"";position:absolute;left:11px;top:24px;bottom:24px;width:2px;background:linear-gradient(180deg,var(--color-primary),var(--color-accent),transparent)}.process-step{position:relative;padding-bottom:var(--space-12)}.process-step:last-child{padding-bottom:0}.process-dot{position:absolute;left:calc(-1 * var(--space-10));top:0;width:24px;height:24px;border-radius:50%;background:var(--color-surface);border:2px solid var(--color-primary);display:flex;align-items:center;justify-content:center}.process-dot:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--color-primary)}.process-num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-primary);letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--space-2)}.process-title{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);letter-spacing:-.02em;margin-bottom:var(--space-3)}.process-desc{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.7;max-width:58ch}.contact-bg{background:var(--color-surface)}.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--space-16);align-items:start}.contact-item{display:flex;align-items:flex-start;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-xl);border:1px solid var(--color-border);background:var(--color-bg);text-decoration:none;color:inherit;margin-bottom:var(--space-3);transition:border-color var(--transition),box-shadow var(--transition)}.contact-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.contact-item-icon{width:44px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--color-primary-dim);border-radius:var(--radius-lg);color:var(--color-primary)}.contact-item-info{display:flex;flex-direction:column;gap:var(--space-1)}.contact-item-label{font-size:var(--text-xs);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.06em}.contact-item-value{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.contact-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.form-input,.form-textarea{padding:var(--space-3) var(--space-4);background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--text-sm);line-height:1.5;transition:border-color var(--transition),box-shadow var(--transition)}.form-input:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-dim);outline:none}.form-textarea{resize:vertical;min-height:120px}.btn-submit{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-4) var(--space-8);background:var(--color-primary);color:#000;border-radius:var(--radius-full);font-weight:700;font-size:var(--text-sm);border:none;cursor:pointer;letter-spacing:.02em;transition:background var(--transition),box-shadow var(--transition)}.btn-submit:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-glow)}.footer{border-top:1px solid var(--color-divider);padding:var(--space-12) var(--space-8)}.footer-inner{max-width:var(--content-wide);margin:0 auto;flex-direction:column}.footer-inner,.footer-top{display:flex;gap:var(--space-8)}.footer-top{justify-content:space-between;align-items:flex-start;flex-wrap:wrap}.footer-brand{max-width:36ch}.footer-brand-name{font-family:var(--font-display);font-weight:900;font-size:var(--text-xl);letter-spacing:-.03em;margin-bottom:var(--space-3);display:flex;align-items:center;gap:var(--space-3)}.footer-tagline{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.6}.footer-links-group{display:flex;gap:var(--space-16);flex-wrap:wrap}.footer-col{display:flex;flex-direction:column;gap:var(--space-3)}.footer-col-title{font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-1)}.footer-col a{font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:none}.footer-col a:hover{color:var(--color-primary)}.footer-bottom{padding-top:var(--space-6);border-top:1px solid var(--color-divider);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-4)}.footer-copy{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-faint)}.footer-socials{display:flex;gap:var(--space-3)}.social-link{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);text-decoration:none;transition:border-color var(--transition),color var(--transition)}.social-link:hover{border-color:var(--color-primary);color:var(--color-primary)}.fade-in{opacity:1}@supports (animation-timeline:scroll()){.fade-in{opacity:0;animation:reveal-fade linear both;animation-timeline:view();animation-range:entry 0 entry 60%}@keyframes reveal-fade{to{opacity:1}}}.mobile-nav{display:none;position:fixed;top:72px;left:0;right:0;bottom:0;z-index:99;background:oklch(from var(--color-bg) l c h/.97);backdrop-filter:blur(20px);flex-direction:column;gap:var(--space-2);padding:var(--space-8)}.mobile-nav.open{display:flex}.mobile-nav a{display:block;padding:var(--space-4);color:var(--color-text-muted);text-decoration:none;font-size:var(--text-lg);font-weight:600;border-bottom:1px solid var(--color-divider)}.mobile-nav a:hover{color:var(--color-primary)}@media (max-width:1024px){.bento-card.col-4{grid-column:span 6}.bento-card.col-8{grid-column:span 12}.about-grid{grid-template-columns:1fr}.about-visual{aspect-ratio:16/7}.contact-grid,.projects-grid{grid-template-columns:1fr}.project-card.featured{grid-column:span 1}}@media (max-width:768px){.btn-nav,.nav-links{display:none}.nav-hamburger{display:flex}.nav{padding:0 var(--space-5)}.hero{padding-top:calc(72px + var(--space-12));padding-inline:var(--space-5)}.hero-title{font-size:clamp(2.5rem,1rem + 6vw,5rem)}.hero-stats{gap:var(--space-8)}.section{padding-inline:var(--space-5)}.bento-card.col-12,.bento-card.col-4,.bento-card.col-6,.bento-card.col-8{grid-column:span 12}.footer-links-group{gap:var(--space-8)}.form-row{grid-template-columns:1fr}.footer-top{flex-direction:column}}@media (max-width:480px){.hero-actions{flex-direction:column;align-items:flex-start}.hero-stats{flex-direction:column;gap:var(--space-6)}}