/* Utilitarian Design System - Terminal Aesthetic Made Modern */:root{/* Colors - Terminal Inspired (Light Mode) */ --color-primary:#0a0a0a;--color-secondary:#1a1a1a;--color-tertiary:#2a2a2a;/* Accent Colors - Classic Terminal with Modern Touch */ --color-accent:#0891b2;/* Deep cyan - primary accent */ --color-accent-hover:#0e7490;--color-accent-alt:#dc2626;/* Error red */ --color-accent-yellow:#ca8a04;/* Muted gold - warnings/highlights */ --color-accent-green:#16a34a;/* Success green */ /* --color-accent-purple removed - use database section_colors instead */ --color-text-primary:#18181b;--color-text-secondary:#374151;--color-text-tertiary:#4b5563;--color-text-muted:#6b7280;--color-background:#fafafa;--color-surface:#ffffff;--color-border:#d4d4d8;--color-divider:#e4e4e7;/* Grid pattern for retro feel */ --grid-color:rgba(0, 0, 0, 0.03);--grid-size:24px;/* Typography - Monospace First */ --font-mono:'JetBrains Mono', 'Fira Code', 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace;--font-sans:-apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;/* Font weights */ --font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;/* Font sizes - tighter scale for monospace */ --text-xs:0.75rem;--text-sm:0.8125rem;--text-base:0.9375rem;--text-lg:1.0625rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;/* Spacing - 8px base unit */ --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;--space-32:8rem;/* Shadows - Minimal */ --shadow-sm:0 1px 2px rgba(0, 0, 0, 0.05);--shadow-md:0 2px 4px rgba(0, 0, 0, 0.08);--shadow-lg:0 4px 8px rgba(0, 0, 0, 0.1);--shadow-card:none;/* Border radius - Sharp corners */ --radius-none:0;--radius-sm:2px;--radius-md:2px;--radius-lg:2px;--radius-xl:2px;--radius-2xl:2px;--radius-full:2px;/* Animation - Minimal, functional */ --transition-fast:100ms linear;--transition-normal:150ms linear;--transition-slow:200ms linear;/* Breakpoints */ --breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px}/* Dark Mode Colors - Deep Terminal */[data-theme="dark"]{--color-primary:#fafafa;--color-secondary:#e4e4e7;--color-tertiary:#a1a1aa;--color-accent:#22d3ee;/* Bright cyan for dark mode */ --color-accent-hover:#67e8f9;--color-accent-alt:#f87171;/* Softer red for dark */ --color-accent-yellow:#fbbf24;/* Brighter gold for dark */ --color-accent-green:#4ade80;/* Brighter green */ /* --color-accent-purple removed - use database section_colors instead */ --color-text-primary:#fafafa;--color-text-secondary:#a1a1aa;--color-text-tertiary:#71717a;--color-text-muted:#52525b;--color-background:#09090b;--color-surface:#18181b;--color-border:#27272a;--color-divider:#1f1f23;/* Grid pattern for dark mode */ --grid-color:rgba(255, 255, 255, 0.02)}/* System Preference Dark Mode */@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--color-primary:#fafafa;--color-secondary:#e4e4e7;--color-tertiary:#a1a1aa;--color-accent:#22d3ee;--color-accent-hover:#67e8f9;--color-accent-alt:#f87171;--color-accent-yellow:#fbbf24;--color-accent-green:#4ade80;/* --color-accent-purple removed - use database section_colors instead */ --color-text-primary:#fafafa;--color-text-secondary:#a1a1aa;--color-text-tertiary:#71717a;--color-text-muted:#52525b;--color-background:#09090b;--color-surface:#18181b;--color-border:#27272a;--color-divider:#1f1f23;--grid-color:rgba(255, 255, 255, 0.02)}}/* No theme transition - instant, functional */*{transition:none}/* Reset */*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:auto}body{font-family:var(--font-mono);font-size:var(--text-base);line-height:1.7;color:var(--color-text-primary);background-color:var(--color-background);overflow-x:hidden;/* Subtle grid pattern - retro terminal feel */ background-image:linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--grid-color) 1px, transparent 1px);background-size:var(--grid-size) var(--grid-size);/* Sticky footer layout */ display:flex;flex-direction:column;min-height:100vh}/* Typography - Monospace Throughout */h1, h2, h3, h4, h5, h6{font-family:var(--font-mono);font-weight:600;line-height:1.3;letter-spacing:-0.02em;color:var(--color-text-primary)}p{line-height:1.7;color:var(--color-text-secondary);font-family:var(--font-mono)}a{color:var(--color-accent);text-decoration:none;border-bottom:1px solid transparent}a:hover{color:var(--color-accent-hover);border-bottom-color:var(--color-accent)}code, pre{font-family:var(--font-mono)}/* Container */.container{max-width:1000px;margin:0 auto;padding:0 var(--space-6)}@media (min-width:768px){.container{padding:0 var(--space-8)}}/* Navigation - Utilitarian Header */.nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:var(--color-background);border-bottom:2px solid var(--color-accent)}[data-theme="dark"] .nav{background:var(--color-background)}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nav{background:var(--color-background)}}.nav-container{max-width:1000px;margin:0 auto;padding:0 var(--space-6);display:flex;align-items:center;justify-content:space-between;height:56px}.nav-logo{font-family:var(--font-mono);font-size:var(--text-base);font-weight:600;color:var(--color-text-primary)}.logo-text{color:var(--color-text-primary) !important;text-decoration:none;font-family:var(--font-mono);font-size:var(--text-base);font-weight:600;letter-spacing:-0.02em}.logo-text:hover{color:var(--color-accent) !important;border-bottom:none}.nav-links{display:flex;align-items:center;gap:var(--space-6)}.nav-actions{display:flex;align-items:center}.nav-link{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:400;color:var(--color-text-secondary);text-transform:lowercase;border-bottom:1px solid transparent;padding-bottom:2px}.nav-link:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}/* Mobile Navigation */.nav-mobile-toggle{display:none;flex-direction:column;justify-content:center;width:44px;height:44px;background:none;border:1px solid var(--color-border);cursor:pointer;padding:10px}.hamburger-line{display:block;width:100%;height:2px;background:var(--color-text-primary);margin:2px 0}.nav-mobile-toggle[aria-expanded="true"] .hamburger-line:nth-child(1){transform:rotate(45deg) translate(4px, 4px)}.nav-mobile-toggle[aria-expanded="true"] .hamburger-line:nth-child(2){opacity:0}.nav-mobile-toggle[aria-expanded="true"] .hamburger-line:nth-child(3){transform:rotate(-45deg) translate(5px, -5px)}/* Mobile Navigation Overlay */.mobile-nav-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0, 0, 0, 0.8);z-index:1002;opacity:0;visibility:hidden}.mobile-nav-overlay.active{opacity:1;visibility:visible}.mobile-nav-content{position:absolute;top:0;right:0;width:100%;max-width:400px;height:100%;background:var(--color-background);border-left:2px solid var(--color-accent);transform:translateX(100%);overflow-y:auto}.mobile-nav-overlay.active .mobile-nav-content{transform:translateX(0)}.mobile-nav-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border)}.mobile-nav-header h2{font-family:var(--font-mono);font-size:var(--text-base);font-weight:600;color:var(--color-text-primary)}.mobile-nav-close{background:none;border:1px solid var(--color-border);font-size:var(--text-lg);cursor:pointer;padding:var(--space-2);color:var(--color-text-secondary);width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono)}.mobile-nav-close:hover{border-color:var(--color-accent);color:var(--color-accent)}.close-icon{display:block}.mobile-nav-body{padding:var(--space-6)}.mobile-nav-section{margin-bottom:var(--space-8)}.mobile-nav-section h3{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:var(--color-accent);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.mobile-nav-menu{display:flex;flex-direction:column;gap:var(--space-1)}.mobile-nav-item{display:flex;align-items:center;min-height:48px;padding:var(--space-3) var(--space-4);text-decoration:none;color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--text-base);font-weight:400;border:1px solid transparent;border-left:2px solid transparent;background:transparent}.mobile-nav-item:hover{background:var(--color-divider);border-left-color:var(--color-accent);color:var(--color-accent)}.mobile-nav-text{font-family:var(--font-mono)}[data-theme="dark"] .mobile-nav-content{background:var(--color-background)}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mobile-nav-content{background:var(--color-background)}}@media (max-width:768px){.nav-links{display:none}.nav-mobile-toggle{display:flex}body.mobile-menu-open{overflow:hidden;position:fixed;width:100%}}/* Theme Toggle - Minimal */.theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:1px solid var(--color-border);cursor:pointer;margin-left:var(--space-4)}.theme-toggle:hover{border-color:var(--color-accent)}.theme-toggle-icon{width:18px;height:18px;color:var(--color-text-secondary)}.theme-toggle:hover .theme-toggle-icon{color:var(--color-accent)}@media (max-width:768px){.theme-toggle{margin-left:var(--space-2);margin-right:var(--space-2);width:40px;height:40px}}/* Hero Section - Terminal Style */.hero{padding:calc(56px + var(--space-16)) 0 var(--space-24) 0;min-height:100vh;display:flex;align-items:center;border-bottom:1px solid var(--color-border)}.hero-container{max-width:1000px;margin:0 auto;padding:0 var(--space-6)}.hero-content{display:grid;grid-template-columns:1fr;gap:var(--space-12);align-items:center}@media (min-width:1024px){.hero-content{grid-template-columns:1fr 300px;gap:var(--space-16)}}.hero-text{max-width:600px}.hero-greeting{display:block;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:400;color:var(--color-accent);margin-bottom:var(--space-2);text-transform:lowercase}.hero-greeting::before{content:'> ';color:var(--color-text-muted)}.hero-name{display:block;font-family:var(--font-mono);font-size:clamp(var(--text-3xl), 6vw, var(--text-5xl));font-weight:700;color:var(--color-text-primary);letter-spacing:-0.03em;margin-bottom:var(--space-4)}.hero-subtitle{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:400;color:var(--color-text-secondary);margin-bottom:var(--space-4);line-height:1.5}.hero-description{font-family:var(--font-mono);font-size:var(--text-base);color:var(--color-text-tertiary);line-height:1.7;margin-bottom:var(--space-8);max-width:500px}.hero-actions{display:flex;gap:var(--space-4);flex-wrap:wrap}.hero-image{display:flex;justify-content:center;order:-1}@media (min-width:1024px){.hero-image{order:0;justify-content:flex-end}}.image-container{position:relative;width:200px;height:200px}@media (min-width:1024px){.image-container{width:280px;height:280px}}.profile-image{width:100%;height:100%;object-fit:cover;border:2px solid var(--color-border);filter:grayscale(20%)}.profile-image:hover{filter:grayscale(0%);border-color:var(--color-accent)}/* Buttons - Utilitarian with proper tap targets */.btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-3) var(--space-6);min-height:44px;background:var(--color-accent);color:var(--color-background);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;border:none;cursor:pointer;text-transform:lowercase}.btn-primary:hover{background:var(--color-accent-hover);color:var(--color-background);border-bottom:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-3) var(--space-6);min-height:44px;background:transparent;color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;border:1px solid var(--color-border);cursor:pointer;text-transform:lowercase}.btn-secondary:hover{border-color:var(--color-accent);color:var(--color-accent)}/* Sections - Clean Grid Layout */.section{padding:var(--space-20) 0;border-bottom:1px solid var(--color-border)}.section:last-of-type{border-bottom:none}@media (max-width:768px){.section{padding:var(--space-12) 0}}.section-title{font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-4);letter-spacing:-0.02em}.section-title::before{content:'# ';color:var(--color-accent)}.section-subtitle{font-family:var(--font-mono);font-size:var(--text-base);color:var(--color-text-tertiary);margin-bottom:var(--space-10);max-width:600px}.section-header{text-align:left;margin-bottom:var(--space-12);max-width:800px}/* About Section */.about-section{background:var(--color-surface)}.section-content{max-width:800px;margin:0 auto}.section-description{font-family:var(--font-mono);font-size:var(--text-base);line-height:1.8;color:var(--color-text-secondary)}.contact-info{margin-top:var(--space-8);display:grid;grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border);background:var(--color-background)}.info-item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);border-left:2px solid var(--color-border)}.info-item:hover{border-left-color:var(--color-accent)}.info-label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;color:var(--color-accent);text-transform:uppercase;letter-spacing:0.08em}.info-value{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-primary)}.info-link{color:var(--color-text-primary);border-bottom:1px solid transparent}.info-link:hover{color:var(--color-accent);border-bottom-color:var(--color-accent)}/* Resume Download */.resume-download{margin-top:var(--space-6)}.resume-link{display:inline-flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:transparent;color:var(--color-text-primary);text-decoration:none;border:1px solid var(--color-border);font-family:var(--font-mono);font-weight:500;font-size:var(--text-sm)}.resume-link:hover{border-color:var(--color-accent);color:var(--color-accent)}.resume-icon{font-size:var(--text-base)}.resume-text{flex:1}.resume-arrow{font-size:var(--text-sm);color:var(--color-text-muted)}.resume-link:hover .resume-arrow{color:var(--color-accent)}/* Social Links */.social-links{margin-top:var(--space-6);display:flex;gap:var(--space-3)}.social-link{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--text-base)}.social-link:hover{border-color:var(--color-accent);color:var(--color-accent)}.social-text-link{display:inline-flex;align-items:center;gap:var(--space-2)}.social-text-link i{font-size:1em;opacity:0.7}.social-text-link:hover i{opacity:1}.social-custom-icon{width:1em;height:1em;display:inline-block;background-color:currentColor;-webkit-mask-image:var(--icon-url);mask-image:var(--icon-url);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;opacity:0.7}.social-text-link:hover .social-custom-icon{opacity:1}/* Skills Section */.skills-section{background:var(--color-surface)}.skills-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}@media (min-width:768px){.skills-grid{grid-template-columns:repeat(2, 1fr)}}@media (min-width:1024px){.skills-grid{grid-template-columns:repeat(3, 1fr)}}.skills-category{background:var(--color-background);border:1px solid var(--color-border);padding:var(--space-5)}.skills-category:hover{border-color:var(--color-accent)}.skills-category-title{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--color-accent);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:0.05em}.skills-list{display:flex;flex-direction:column;gap:var(--space-2)}.skill-item{position:relative}.skill-header{display:flex;justify-content:space-between;align-items:center}.skill-name{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:400;color:var(--color-text-secondary)}.skill-name::before{content:'- ';color:var(--color-text-muted)}.skill-featured{color:var(--color-accent-yellow);font-size:var(--text-sm)}/* Experience Section */.experience-section{background:var(--color-background)}.experience-timeline{position:relative;max-width:800px;margin:0 auto}.experience-timeline::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--color-border)}@media (min-width:768px){.experience-timeline::before{left:50%;transform:translateX(-50%)}}.experience-item{position:relative;margin-bottom:var(--space-8);padding-left:var(--space-8)}@media (min-width:768px){.experience-item{padding-left:0}.experience-item:nth-child(odd) .experience-content{margin-right:calc(50% + var(--space-6));text-align:right}.experience-item:nth-child(even) .experience-content{margin-left:calc(50% + var(--space-6))}}.experience-content{background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-5)}.experience-content:hover{border-color:var(--color-accent)}.experience-marker{position:absolute;left:-4px;top:var(--space-5);width:10px;height:10px;background:var(--color-accent);border:2px solid var(--color-background)}@media (min-width:768px){.experience-marker{left:50%;transform:translateX(-50%)}}.experience-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-2);gap:var(--space-2)}.experience-title{font-family:var(--font-mono);font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin:0}.experience-current{background:var(--color-accent);color:var(--color-background);padding:var(--space-1) var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:0.05em}.experience-company{margin-bottom:var(--space-2)}.company-link{color:var(--color-accent);font-family:var(--font-mono);font-weight:500}.company-link:hover{color:var(--color-accent-hover)}.company-name{color:var(--color-accent);font-family:var(--font-mono);font-weight:500}.experience-dates{color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:var(--text-sm);margin-bottom:var(--space-3)}.experience-description{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-sm);margin-bottom:var(--space-3);line-height:1.7}.experience-achievements{list-style:none;padding:0;margin:0}.experience-achievements li{position:relative;padding-left:var(--space-4);margin-bottom:var(--space-2);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.6}.experience-achievements li::before{content:'>';position:absolute;left:0;color:var(--color-accent);font-weight:600}/* Services Section */.services-section{background:var(--color-surface)}.services-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media (min-width:768px){.services-grid{grid-template-columns:repeat(2, 1fr)}}@media (min-width:1024px){.services-grid{grid-template-columns:repeat(3, 1fr)}}.service-card{background:var(--color-background);border:1px solid var(--color-border);padding:var(--space-6);text-align:left}.service-card:hover{border-color:var(--color-accent)}.service-icon{font-size:2rem;margin-bottom:var(--space-4);display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--color-divider);border:1px solid var(--color-border);color:var(--color-accent)}.service-title{font-family:var(--font-mono);font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-3)}.service-description{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.7;margin-bottom:var(--space-4)}.service-price{margin-bottom:var(--space-4);padding:var(--space-3);background:var(--color-divider);border:1px solid var(--color-border)}.price-label{display:block;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:var(--space-1)}.price-range{font-family:var(--font-mono);font-size:var(--text-base);font-weight:600;color:var(--color-accent)}.service-button{display:inline-flex;align-items:center;padding:var(--space-2) var(--space-4);background:transparent;color:var(--color-text-primary);text-decoration:none;border:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--text-sm)}.service-button:hover{border-color:var(--color-accent);color:var(--color-accent)}/* Testimonials Section */.testimonials-section{background:var(--color-background)}.testimonials-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}@media (min-width:768px){.testimonials-grid{grid-template-columns:repeat(2, 1fr)}}@media (min-width:1024px){.testimonials-grid{grid-template-columns:repeat(3, 1fr)}}.testimonial-card{background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-5);position:relative}.testimonial-card:hover{border-color:var(--color-accent)}.testimonial-content{display:flex;flex-direction:column;gap:var(--space-4)}.testimonial-rating{display:flex;gap:var(--space-1)}.star{color:var(--color-text-muted);font-size:var(--text-sm)}.star.filled{color:var(--color-accent-yellow)}.testimonial-quote{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.7;font-style:normal;border-left:2px solid var(--color-accent);padding-left:var(--space-4)}.testimonial-author{display:flex;align-items:center;gap:var(--space-3);margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--color-border)}.author-avatar{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--color-accent);color:var(--color-background);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;border-radius:50%;overflow:hidden}.author-avatar-photo{background:var(--color-surface)}.author-avatar-photo img{width:100%;height:100%;object-fit:cover}.author-info{flex:1}.author-name{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary)}.author-title{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary)}.author-company{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-accent)}.testimonial-featured{position:absolute;top:var(--space-3);right:var(--space-3);background:var(--color-accent);color:var(--color-background);padding:var(--space-1) var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:0.05em}/* Blog Header / Hero Section */.blog-header{padding:var(--space-16) 0 var(--space-10);padding-top:calc(56px + var(--space-16));/* Account for fixed navbar */ background:var(--color-surface);text-align:center}.blog-header-content{max-width:720px;margin:0 auto}.blog-header .blog-title{font-family:var(--font-mono);font-size:var(--text-4xl);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--space-4);line-height:1.2}.blog-subtitle{font-family:var(--font-mono);font-size:var(--text-base);color:var(--color-text-secondary);line-height:1.7;margin-bottom:var(--space-6)}/* Subscribe Section - Terminal Style *//* Subscribe Toggle Section */.subscribe-toggle-section{margin-top:var(--space-6);display:flex;align-items:center;justify-content:center;gap:var(--space-4)}.subscribe-toggle{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);background:none;border:none;cursor:pointer;padding:var(--space-2) var(--space-3);transition:color 0.2s ease}.subscribe-toggle:hover{color:var(--color-accent)}.subscribe-toggle-icon{transition:transform 0.2s ease}.subscribe-toggle.active .subscribe-toggle-icon{transform:rotate(180deg)}.rss-icon-link{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--color-text-tertiary);opacity:0.6;transition:color 0.2s ease, opacity 0.2s ease}.rss-icon-link:hover{color:var(--color-accent);opacity:1}.rss-icon-link svg{width:14px;height:14px}/* Subscribe Section (collapsible) */.subscribe-section{margin-top:var(--space-4);display:flex;flex-direction:column;align-items:center;gap:var(--space-3);max-height:200px;overflow:hidden;opacity:1;transition:max-height 0.3s ease, opacity 0.2s ease, margin 0.3s ease}.subscribe-section.subscribe-collapsed{max-height:0;opacity:0;margin-top:0}.subscribe-form{width:100%;max-width:400px}.subscribe-input-group{display:flex;align-items:center;background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;transition:border-color 0.2s ease, box-shadow 0.2s ease}.subscribe-input-group:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(0, 122, 255, 0.1)}.subscribe-prompt{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent);padding:0 var(--space-3);user-select:none}.subscribe-input-group input{flex:1;font-family:var(--font-mono);font-size:var(--text-base);padding:var(--space-3) 0;min-height:44px;border:none;background:transparent;color:var(--color-text-primary);min-width:0}.subscribe-input-group input:focus{outline:none}.subscribe-input-group input::placeholder{color:var(--color-text-tertiary)}.subscribe-btn{font-family:var(--font-mono);font-size:var(--text-sm);padding:var(--space-3) var(--space-4);min-height:44px;background:var(--color-accent);color:white;border:none;cursor:pointer;transition:background 0.2s ease;white-space:nowrap}.subscribe-btn:hover:not(:disabled){background:var(--color-accent-hover)}.subscribe-btn:disabled{opacity:0.7;cursor:not-allowed}.subscribe-btn .subscribe-btn-loading{display:none}.subscribe-btn.loading .subscribe-btn-text{display:none}.subscribe-btn.loading .subscribe-btn-loading{display:inline}.subscribe-message{font-family:var(--font-mono);font-size:var(--text-xs);text-align:center;margin-top:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);opacity:0;transform:translateY(-4px);transition:opacity 0.2s ease, transform 0.2s ease}.subscribe-message.show{opacity:1;transform:translateY(0)}.subscribe-message.success{background:rgba(52, 199, 89, 0.1);color:#34c759}.subscribe-message.error{background:rgba(255, 59, 48, 0.1);color:#ff3b30}.subscribe-tagline{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);text-align:center;margin:0}.rss-link{display:inline-flex;align-items:center;gap:var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);text-decoration:none;transition:color 0.2s ease}.rss-link:hover{color:var(--color-accent)}.rss-link svg{width:14px;height:14px}/* Mobile adjustments for subscribe */@media (max-width:480px){.subscribe-input-group{flex-direction:column;align-items:stretch}.subscribe-prompt{display:none}.subscribe-input-group input{padding:var(--space-3);text-align:center}.subscribe-btn{border-top:1px solid var(--color-border)}}/* Blog Section */.blog-section{background:var(--color-surface);flex:1;/* Sticky footer:push footer to bottom */}/* Blog main content area - listing page */.blog-main{padding:var(--space-8) 0 var(--space-16);flex:1;/* Sticky footer:push footer to bottom */}.blog-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media (min-width:768px){.blog-grid{grid-template-columns:repeat(2, 1fr)}}@media (min-width:1024px){.blog-grid{grid-template-columns:repeat(3, 1fr)}}.blog-card{background:var(--color-background);border:1px solid var(--color-border)}.blog-card:hover{border-color:var(--color-accent)}/* Featured Blog Card - Distinctive Styling */.blog-card.featured{border-left:3px solid var(--color-accent);background:linear-gradient(135deg, rgba(var(--color-accent-rgb, 0, 122, 255), 0.03) 0%, transparent 100%);position:relative}.blog-card.featured::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg, var(--color-accent), transparent);opacity:0.5}.blog-card.featured .blog-featured{background:var(--color-accent);color:white;font-weight:600;letter-spacing:0.08em}.blog-content{padding:var(--space-5)}.blog-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-3)}.blog-date{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.05em}.blog-featured{background:var(--color-accent);color:var(--color-background);padding:var(--space-1) var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase}.blog-title{font-family:var(--font-mono);font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-3);line-height:1.4}.blog-excerpt{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.7;margin-bottom:var(--space-4)}.blog-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.blog-tag{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);padding:var(--space-2) var(--space-3);min-height:32px;display:inline-flex;align-items:center;border:1px solid var(--color-border)}.blog-footer{padding-top:var(--space-3);border-top:1px solid var(--color-border)}.blog-read-more{display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent);border-bottom:none}.blog-read-more:hover{color:var(--color-accent-hover)}.blog-section-actions{text-align:center;margin-top:var(--space-8)}.blog-view-all{display:inline-flex;padding:var(--space-3) var(--space-6);border:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-primary)}.blog-view-all:hover{border-color:var(--color-accent);color:var(--color-accent)}/* Gallery Section */.gallery-section{background:var(--color-background)}.gallery-grid{display:grid;grid-template-columns:repeat(2, 1fr);gap:var(--space-3)}/* Better gap and sizing on mobile */@media (max-width:480px){.gallery-grid{gap:var(--space-2)}}@media (min-width:768px){.gallery-grid{grid-template-columns:repeat(3, 1fr)}}@media (min-width:1024px){.gallery-grid{grid-template-columns:repeat(4, 1fr)}}/* Gallery Filter Toggle */.gallery-filter-container{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5)}.gallery-filters{display:flex;gap:var(--space-2);background:var(--color-surface);padding:4px;border-radius:var(--radius-full);border:1px solid var(--color-border)}.gallery-filter-btn{padding:var(--space-2) var(--space-5);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:0.02em;border-radius:0;cursor:pointer;transition:all 0.25s ease;position:relative;overflow:hidden}.gallery-filter-btn::before{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--color-accent);transform:scaleX(0);transition:transform 0.25s ease}.gallery-filter-btn:hover{color:var(--color-text-primary);border-color:var(--color-text-tertiary)}.gallery-filter-btn:hover::before{transform:scaleX(0.5)}.gallery-filter-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-background)}.gallery-filter-btn.active::before{display:none}.gallery-view-all-link{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent);text-decoration:none;font-weight:500;border:1px solid var(--color-accent);transition:all 0.25s ease}.gallery-view-all-link:hover{background:var(--color-accent);color:var(--color-background)}/* Gallery Pagination */.gallery-pagination{display:flex;justify-content:center;align-items:center;gap:var(--space-2);margin-top:var(--space-6)}.pagination-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);transition:all 0.2s ease}.pagination-btn:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.pagination-btn:disabled{opacity:0.4;cursor:not-allowed}.pagination-pages{display:flex;gap:var(--space-1)}.pagination-page{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 var(--space-2);border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;transition:all 0.2s ease}.pagination-page:hover{border-color:var(--color-accent);color:var(--color-accent)}.pagination-page.active{background:var(--color-accent);border-color:var(--color-accent);color:white}.pagination-ellipsis{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;color:var(--color-text-muted);font-size:var(--text-sm)}/* Mobile filter responsiveness */@media (max-width:480px){.gallery-filter-container{flex-direction:column;gap:var(--space-3);align-items:stretch}.gallery-filters{justify-content:center}.gallery-view-all-link{text-align:center}.pagination-page{min-width:32px;height:32px;font-size:var(--text-xs)}.pagination-btn{width:32px;height:32px}}.gallery-item{position:relative}.gallery-image{position:relative;aspect-ratio:1;overflow:hidden;border:1px solid var(--color-border)}.gallery-image:hover{border-color:var(--color-accent)}.gallery-image img{width:100%;height:100%;object-fit:cover;filter:grayscale(30%)}.gallery-image:hover img{filter:grayscale(0%)}.gallery-overlay{position:absolute;inset:0;background:rgba(0, 0, 0, 0.8);display:flex;flex-direction:column;justify-content:space-between;padding:var(--space-4);opacity:0}.gallery-image:hover .gallery-overlay{opacity:1}/* Touch device support - show overlay content always */@media (hover:none), (pointer:coarse){.gallery-item{cursor:pointer}.gallery-overlay{opacity:1;background:linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.4) 50%, transparent 100%);justify-content:flex-end;padding-bottom:var(--space-3)}.gallery-content{padding:0 var(--space-3)}.gallery-title{font-size:var(--text-xs);margin-bottom:var(--space-1)}.gallery-description{display:none}.gallery-category{font-size:0.625rem;margin-top:var(--space-1)}.gallery-actions{display:none}}.gallery-content{color:white}.gallery-title{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:white;margin-bottom:var(--space-2)}.gallery-description{font-family:var(--font-mono);font-size:var(--text-xs);color:rgba(255, 255, 255, 0.7);line-height:1.5}.gallery-category{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-accent);text-transform:uppercase;margin-top:var(--space-2)}.gallery-actions{text-align:right}.gallery-view{padding:var(--space-2) var(--space-4);background:transparent;color:white;border:1px solid rgba(255, 255, 255, 0.6);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:0.05em;cursor:pointer;text-transform:uppercase;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:all 0.25s ease}.gallery-view:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-background);transform:translateY(-1px)}.gallery-featured{position:absolute;top:var(--space-2);right:var(--space-2);background:var(--color-accent);color:var(--color-background);padding:var(--space-1) var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;z-index:1}/* Hero Carousel for Featured Gallery Images */.gallery-carousel{position:relative;width:100%;height:50vh;min-height:400px;max-height:600px;margin-bottom:var(--space-8);overflow:hidden;background:var(--color-text-primary)}.gallery-carousel:focus{outline:2px solid var(--color-accent);outline-offset:2px}.carousel-track{position:relative;width:100%;height:100%}.carousel-slide{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;visibility:hidden;transition:opacity 0.3s ease, visibility 0.3s ease}.carousel-slide.active{opacity:1;visibility:visible}.carousel-slide img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s ease}.gallery-carousel:hover .carousel-slide.active img{transform:scale(1.02)}@media (prefers-reduced-motion:reduce){.carousel-slide{transition:none}.carousel-slide img{transition:none}.gallery-carousel:hover .carousel-slide.active img{transform:none}}.carousel-gradient{position:absolute;bottom:0;left:0;right:0;height:50%;background:linear-gradient(transparent 0%, rgba(0, 0, 0, 0.7) 100%);pointer-events:none}.carousel-content{position:absolute;bottom:var(--space-6);left:var(--space-6);right:var(--space-6);color:white;z-index:2}.carousel-title{font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:600;color:white;margin-bottom:var(--space-2);line-height:1.2}.carousel-description{font-family:var(--font-mono);font-size:var(--text-sm);color:rgba(255, 255, 255, 0.85);line-height:1.5;max-width:600px;margin-bottom:var(--space-2)}.carousel-category{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-accent);text-transform:uppercase;margin-top:var(--space-1)}.carousel-view-btn{position:absolute;bottom:var(--space-6);right:var(--space-6);padding:var(--space-3) var(--space-5);background:var(--color-accent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--color-background);border:2px solid var(--color-accent);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;transition:all 0.25s ease;z-index:2}.carousel-view-btn:hover{background:transparent;color:white;border-color:white;transform:translateY(-2px);box-shadow:0 4px 12px rgba(0, 0, 0, 0.3)}/* Carousel Navigation Arrows */.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(255, 255, 255, 0.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255, 255, 255, 0.15);color:white;cursor:pointer;opacity:0;transition:opacity 0.3s ease, background 0.2s ease;z-index:3;display:flex;align-items:center;justify-content:center}.gallery-carousel:hover .carousel-arrow:not(:disabled){opacity:1}.carousel-arrow:hover:not(:disabled){background:rgba(255, 255, 255, 0.2)}.carousel-arrow:disabled{opacity:0 !important;cursor:default}.carousel-arrow:focus-visible{opacity:1;outline:2px solid var(--color-accent);outline-offset:2px}.carousel-prev{left:var(--space-6)}.carousel-next{right:var(--space-6)}/* Carousel Indicators */.carousel-indicators{position:absolute;bottom:var(--space-4);left:50%;transform:translateX(-50%);display:flex;gap:var(--space-2);z-index:3}.carousel-indicator{width:24px;height:3px;background:rgba(255, 255, 255, 0.3);border:none;cursor:pointer;transition:background 0.2s ease, width 0.2s ease;padding:0}.carousel-indicator:hover{background:rgba(255, 255, 255, 0.5)}.carousel-indicator.active{background:var(--color-accent);width:32px}.carousel-indicator:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}/* Carousel Responsive */@media (max-width:767px){.gallery-carousel{height:40vh;min-height:300px}.carousel-content{bottom:var(--space-5);left:var(--space-4);right:var(--space-4)}.carousel-title{font-size:var(--text-xl)}.carousel-description{font-size:var(--text-xs);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.carousel-view-btn{bottom:var(--space-5);right:var(--space-4);padding:var(--space-2) var(--space-3)}.carousel-arrow{width:36px;height:36px;opacity:1}.carousel-arrow:disabled{opacity:0.3 !important}.carousel-prev{left:var(--space-3)}.carousel-next{right:var(--space-3)}.carousel-arrow svg{width:18px;height:18px}.carousel-indicators{bottom:var(--space-3)}}/* Work/Projects Section */.work-section{background:var(--color-surface)}.work-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}@media (min-width:768px){.work-grid{grid-template-columns:repeat(2, 1fr)}/* When there's only one item, center it and limit width */ .work-grid .work-item:only-child{max-width:560px;margin:0 auto;grid-column:1 / -1}}.work-item{background:var(--color-background);border:1px solid var(--color-border);overflow:hidden;transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.work-item:hover{border-color:var(--color-accent);box-shadow:0 4px 12px rgba(0, 0, 0, 0.08)}.work-image{aspect-ratio:16/10;overflow:hidden;border-bottom:1px solid var(--color-border)}.work-image img{width:100%;height:100%;object-fit:cover;filter:grayscale(20%)}.work-item:hover .work-image img{filter:grayscale(0%)}.work-content{padding:var(--space-5)}.work-title{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-3)}.work-description{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.7;margin-bottom:var(--space-4)}.work-tech-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.tech-tag{background:var(--color-accent-bg, rgba(0, 122, 255, 0.1));color:var(--color-accent);padding:0.25rem 0.6rem;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500}.tech-tag-more{background:var(--color-surface);color:var(--color-text-tertiary)}.work-links{display:flex;gap:var(--space-3)}.work-link{display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-accent);border-bottom:1px solid transparent}.work-link:hover{border-bottom-color:var(--color-accent)}.work-link-secondary{color:var(--color-text-tertiary)}.work-link-secondary:hover{color:var(--color-accent)}/* Contact Section */.contact-section{background:var(--color-background)}.contact-content{max-width:600px;margin:0 auto}.contact-form-container{background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-6)}.contact-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-row{display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media (min-width:640px){.form-row{grid-template-columns:1fr 1fr}}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;color:var(--color-accent);text-transform:uppercase;letter-spacing:0.08em}.form-group input,.form-group textarea{padding:var(--space-3);min-height:44px;background:var(--color-background);border:1px solid var(--color-border);color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--text-base)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-text-muted)}.form-group textarea{min-height:120px;resize:vertical}.form-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-2)}.form-message{padding:var(--space-3);font-family:var(--font-mono);font-size:var(--text-sm);border:1px solid var(--color-border)}.form-message.success{background:rgba(0, 212, 170, 0.1);border-color:var(--color-accent);color:var(--color-accent)}.form-message.error{background:rgba(255, 107, 107, 0.1);border-color:var(--color-accent-alt);color:var(--color-accent-alt)}/* Footer - Minimal */.footer{background:var(--color-surface);border-top:2px solid var(--color-accent);padding:var(--space-8) 0}.footer-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-5);text-align:center}@media (min-width:768px){.footer-content{flex-direction:row;justify-content:space-between;text-align:left;gap:var(--space-6)}}.footer-left{flex-shrink:0}.footer-text p{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-tertiary)}.footer-nav{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--space-3);order:-1;width:100%;padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-3)}@media (min-width:768px){.footer-nav{order:0;width:auto;padding-bottom:0;border-bottom:none;margin-bottom:0;flex-wrap:nowrap}}.footer-nav a{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition-fast);white-space:nowrap}.footer-nav a:hover{color:var(--color-accent)}.footer-social{display:flex;gap:var(--space-3)}.footer-social a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--text-sm)}.footer-social a:hover{border-color:var(--color-accent);color:var(--color-accent)}.footer-custom-icon{width:1em;height:1em;display:inline-block;background-color:currentColor;-webkit-mask-image:var(--icon-url);mask-image:var(--icon-url);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}/* Education, Awards, Community Sections - Utilitarian Style */.about-subsection{margin-top:var(--space-8)}.about-subsection-title{font-family:var(--font-mono);font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:0.05em}.about-subsection-title::before{content:'> ';color:var(--section-accent, var(--color-accent))}.credential-grid{display:flex;flex-direction:column;gap:var(--space-3)}.credential-item{padding:var(--space-4);background:var(--color-background);border:1px solid var(--color-border);border-left:2px solid var(--section-accent, var(--color-accent))}.credential-item:hover{border-color:var(--section-accent, var(--color-accent))}.credential-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2)}.credential-title{font-family:var(--font-mono);font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin:0}.credential-year{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);white-space:nowrap}.credential-org{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--section-accent, var(--color-accent));margin-bottom:var(--space-1)}.credential-detail{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.credential-detail::before{content:'- ';color:var(--color-text-muted)}.credential-badge{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-accent-green);padding:var(--space-1) var(--space-2);border:1px solid var(--color-accent-green);margin-top:var(--space-1)}.credential-dates{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);margin-bottom:var(--space-2)}.credential-description{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.7;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border)}/* Custom Links Section */.custom-links{margin-top:var(--space-8)}.custom-links-title{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--color-accent);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:0.05em}.custom-links-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3)}@media (min-width:640px){.custom-links-grid{grid-template-columns:repeat(2, 1fr)}}.custom-link-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--color-background);border:1px solid var(--color-border);text-decoration:none}.custom-link-card:hover{border-color:var(--color-accent)}.custom-link-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-divider);border:1px solid var(--color-border);color:var(--color-accent);font-size:var(--text-base);flex-shrink:0}.custom-link-content{flex:1;min-width:0}.custom-link-title{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-1)}.custom-link-description{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);line-height:1.5}.custom-link-arrow{color:var(--color-text-muted);font-size:var(--text-sm)}.custom-link-card:hover .custom-link-arrow{color:var(--color-accent)}/* Enhanced Lightbox with swipe, zoom, and thumbnails */.lightbox{position:fixed;inset:0;z-index:9999;display:none}.lightbox.active{display:block}.lightbox-overlay{position:absolute;inset:0;background:rgba(0, 0, 0, 0.95)}.lightbox-wrapper{position:relative;width:100%;height:100%;display:flex;flex-direction:column;z-index:1}/* Header */.lightbox-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);flex-shrink:0}.lightbox-counter{font-family:var(--font-mono);font-size:var(--text-sm);color:rgba(255, 255, 255, 0.7)}.lightbox-close{background:none;border:1px solid rgba(255, 255, 255, 0.3);color:white;font-size:var(--text-xl);cursor:pointer;padding:var(--space-1) var(--space-3);line-height:1}.lightbox-close:hover{border-color:var(--color-accent);color:var(--color-accent)}/* Main image area */.lightbox-main{flex:1;display:flex;align-items:center;justify-content:center;position:relative;min-height:0;padding:0 var(--space-2)}.lightbox-image-container{flex:1;display:flex;align-items:center;justify-content:center;max-height:100%;overflow:hidden;touch-action:none}.lightbox-image{max-width:100%;max-height:60vh;object-fit:contain;user-select:none;-webkit-user-drag:none;transition:none}@media (min-width:768px){.lightbox-image{max-height:70vh}}/* Navigation buttons */.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0, 0, 0, 0.5);border:1px solid rgba(255, 255, 255, 0.2);color:white;font-size:var(--text-2xl);cursor:pointer;padding:var(--space-3) var(--space-4);display:flex;align-items:center;justify-content:center;z-index:10}.lightbox-nav:hover{background:rgba(0, 0, 0, 0.8);border-color:var(--color-accent);color:var(--color-accent)}.lightbox-prev{left:var(--space-2)}.lightbox-next{right:var(--space-2)}@media (max-width:640px){.lightbox-nav{padding:var(--space-2) var(--space-3);font-size:var(--text-lg)}}/* Caption */.lightbox-caption{font-family:var(--font-mono);font-size:var(--text-base);color:white;text-align:center;padding:var(--space-3) var(--space-4);flex-shrink:0}/* Thumbnail strip */.lightbox-thumbnails{display:none;gap:var(--space-2);padding:var(--space-3) var(--space-4);overflow-x:auto;overflow-y:hidden;flex-shrink:0;justify-content:center;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--color-accent) transparent}.lightbox-thumbnails::-webkit-scrollbar{height:4px}.lightbox-thumbnails::-webkit-scrollbar-thumb{background:var(--color-accent)}.lightbox-thumb{flex-shrink:0;width:60px;height:60px;padding:0;border:2px solid transparent;background:none;cursor:pointer;opacity:0.5;overflow:hidden}.lightbox-thumb:hover{opacity:0.8}.lightbox-thumb.active{border-color:var(--color-accent);opacity:1}.lightbox-thumb img{width:100%;height:100%;object-fit:cover}@media (max-width:640px){.lightbox-thumb{width:50px;height:50px}}/* Hint text */.lightbox-hint{font-family:var(--font-mono);font-size:var(--text-xs);color:rgba(255, 255, 255, 0.5);text-align:center;padding:var(--space-2) var(--space-4) var(--space-4);flex-shrink:0;transition:opacity 0.5s ease}.lightbox-hint.fade-out{opacity:0}@media (min-width:768px){.lightbox-hint{display:none}}/* Skip Link for Accessibility */.skip-link{position:absolute;top:-40px;left:0;background:var(--color-accent);color:var(--color-background);padding:var(--space-2) var(--space-4);font-family:var(--font-mono);font-size:var(--text-sm);z-index:10000}.skip-link:focus{top:0}/* Focus States */*:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}/* Selection */::selection{background:var(--color-accent);color:var(--color-background)}/* Reduced Motion */@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}html{scroll-behavior:auto}}/* =========================================== BLOG POST DETAIL STYLES Complete styling for Desk Notes posts =========================================== *//* Breadcrumb Navigation */.breadcrumb{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-4) 0;padding-top:calc(56px + var(--space-4));/* Account for fixed navbar */}.breadcrumb-nav{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs)}.breadcrumb-link{color:var(--color-text-tertiary);border-bottom:none}.breadcrumb-link:hover{color:var(--color-accent)}.breadcrumb-separator{color:var(--color-text-muted)}.breadcrumb-current{color:var(--color-text-primary);font-weight:var(--font-medium)}/* Blog Post Article */.blog-post{padding:var(--space-12) 0 var(--space-16);flex:1;/* Sticky footer:push footer to bottom */}/* Post Header */.post-header{max-width:800px;margin:0 auto var(--space-8);text-align:center}.post-featured-badge{display:inline-block;background:var(--color-accent);color:var(--color-background);padding:var(--space-1) var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:var(--space-4)}.post-title{font-family:var(--font-mono);font-size:var(--text-4xl);font-weight:var(--font-bold);color:var(--color-text-primary);line-height:1.2;margin-bottom:var(--space-4)}@media (max-width:768px){.post-title{font-size:var(--text-2xl)}}.post-meta{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);margin-bottom:var(--space-4)}.post-date,.post-updated{color:var(--color-text-tertiary)}.post-separator{color:var(--color-text-muted)}.post-tags{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-2)}.post-tag{display:inline-block;padding:var(--space-1) var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);border:1px solid var(--color-border)}/* Featured Image */.post-featured-image{max-width:900px;margin:0 auto var(--space-8);border:1px solid var(--color-border)}.post-featured-image img{width:100%;height:auto;display:block}/* Post Content - The main content area from WYSIWYG */.post-content{max-width:720px;margin:0 auto;font-family:var(--font-mono);font-size:var(--text-base);line-height:1.8;color:var(--color-text-secondary)}/* Typography in post content */.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{font-family:var(--font-mono);font-weight:var(--font-semibold);color:var(--color-text-primary);line-height:1.3;margin:var(--space-8) 0 var(--space-4)}.post-content h1{font-size:var(--text-3xl)}.post-content h2{font-size:var(--text-2xl)}.post-content h3{font-size:var(--text-xl)}.post-content h4{font-size:var(--text-lg)}.post-content h5{font-size:var(--text-base)}.post-content h6{font-size:var(--text-sm)}.post-content h2::before{content:'## ';color:var(--color-accent)}.post-content h3::before{content:'### ';color:var(--color-accent)}.post-content p{margin-bottom:var(--space-5)}.post-content a{color:var(--color-accent);border-bottom:1px solid transparent}.post-content a:hover{border-bottom-color:var(--color-accent)}/* Lists */.post-content ul,.post-content ol{margin:var(--space-4) 0;padding-left:var(--space-6)}.post-content li{margin-bottom:var(--space-2)}.post-content ul li::marker{color:var(--color-accent)}.post-content ol li::marker{color:var(--color-accent);font-weight:var(--font-semibold)}/* Nested lists */.post-content ul ul,.post-content ol ol,.post-content ul ol,.post-content ol ul{margin:var(--space-2) 0}/* Blockquotes */.post-content blockquote{margin:var(--space-6) 0;padding:var(--space-4) var(--space-5);border-left:3px solid var(--color-accent);background:var(--color-surface);font-style:italic;color:var(--color-text-secondary)}.post-content blockquote p:last-child{margin-bottom:0}/* Inline code */.post-content code{font-family:var(--font-mono);font-size:0.9em;background:var(--color-surface);border:1px solid var(--color-border);padding:0.15em 0.4em;color:var(--color-accent-alt)}/* Code blocks - Quill generates pre.ql-code-block-container or pre with ql-syntax class */.post-content pre,.post-content .ql-code-block-container{margin:var(--space-6) 0;padding:var(--space-5);background:#1e1e1e;border:1px solid var(--color-border);overflow-x:auto;font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.6}.post-content pre code,.post-content .ql-code-block-container code{background:none;border:none;padding:0;color:#d4d4d4;font-size:inherit}/* Syntax highlighted code blocks */.post-content pre[class*="language-"],.post-content code[class*="language-"]{text-shadow:none}/* Quill code block styling */.post-content .ql-code-block{background:#1e1e1e;color:#d4d4d4;padding:var(--space-1) var(--space-2)}/* Images in content */.post-content img{max-width:100%;height:auto;display:block;margin:var(--space-6) auto;border:1px solid var(--color-border)}.post-content figure{margin:var(--space-6) 0}.post-content figcaption{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);text-align:center;margin-top:var(--space-2)}/* Video embeds - Quill's responsive video wrapper */.post-content .ql-video-wrapper,.post-content iframe{display:block;width:100%;max-width:100%;aspect-ratio:16/9;margin:var(--space-6) auto;border:1px solid var(--color-border)}.post-content .ql-video-wrapper iframe{width:100%;height:100%;margin:0;border:none}/* Chart wrapper (from WYSIWYG editor) */.post-content .ql-chart-wrapper{margin:var(--space-6) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.post-content .ql-chart-wrapper .chart-title{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary);text-align:center;margin-bottom:var(--space-3)}.post-content .ql-chart-wrapper canvas{max-width:100%;height:auto}/* Gallery wrapper (from WYSIWYG editor) */.post-content .ql-gallery-wrapper{margin:var(--space-6) 0}.post-content .gallery-container{display:grid;gap:var(--space-3)}.post-content .gallery-container.gallery-grid{grid-template-columns:repeat(3, 1fr)}.post-content .gallery-container.gallery-masonry{column-count:3;column-gap:var(--space-3)}.post-content .gallery-container.gallery-carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:var(--space-3)}.post-content .gallery-container.gallery-carousel .gallery-item{flex:0 0 auto;width:80%;scroll-snap-align:start}.post-content .gallery-container.gallery-single{display:block}.post-content .gallery-item{overflow:hidden;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.post-content .gallery-item img{width:100%;height:auto;display:block;margin:0;border:none;transition:transform 0.3s ease}.post-content .gallery-item:hover img{transform:scale(1.02)}/* Divider (from WYSIWYG editor) */.post-content .ql-divider{margin:var(--space-8) 0;border:none;text-align:center}.post-content .ql-divider::before{content:'* * *';color:var(--color-text-tertiary);font-family:var(--font-mono);letter-spacing:1em}/* Tables */.post-content table{width:100%;margin:var(--space-6) 0;border-collapse:collapse;font-family:var(--font-mono);font-size:var(--text-sm)}.post-content th,.post-content td{padding:var(--space-3);text-align:left;border:1px solid var(--color-border)}.post-content th{background:var(--color-surface);font-weight:var(--font-semibold);color:var(--color-text-primary)}.post-content tr:hover td{background:rgba(8, 145, 178, 0.03)}/* Horizontal rules */.post-content hr{margin:var(--space-8) 0;border:none;border-top:1px solid var(--color-border)}/* Text formatting */.post-content strong,.post-content b{font-weight:var(--font-semibold);color:var(--color-text-primary)}.post-content em,.post-content i{font-style:italic}.post-content u{text-decoration:underline}.post-content s,.post-content strike{text-decoration:line-through;color:var(--color-text-tertiary)}.post-content sub{font-size:0.75em;vertical-align:sub}.post-content sup{font-size:0.75em;vertical-align:super}/* Quill alignment classes */.post-content .ql-align-center{text-align:center}.post-content .ql-align-right{text-align:right}.post-content .ql-align-justify{text-align:justify}/* Post Navigation */.post-navigation{max-width:720px;margin:var(--space-12) auto 0;padding-top:var(--space-8);border-top:1px solid var(--color-border);display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}@media (max-width:640px){.post-navigation{grid-template-columns:1fr}}.nav-previous,.nav-next{display:flex;flex-direction:column}.nav-next{text-align:right}/* Center navigation when only one direction exists */.nav-previous:only-child,.nav-next:only-child{text-align:center;grid-column:1 / -1}.nav-label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:var(--space-2)}.nav-title{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-primary);border-bottom:none}.nav-title:hover{color:var(--color-accent)}/* Related Posts */.related-posts{max-width:900px;margin:var(--space-12) auto var(--space-12);padding:var(--space-8);background:var(--color-surface);border:1px solid var(--color-border)}.related-posts h2{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--space-6)}.related-posts h2::before{content:'> ';color:var(--color-accent)}.related-posts-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:var(--space-4)}.related-post-card{padding:var(--space-4);border:1px solid var(--color-border);background:var(--color-background)}.related-post-card:hover{border-color:var(--color-accent)}.related-post-link{display:block;border-bottom:none}.related-post-title{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--color-text-primary);margin-bottom:var(--space-2);line-height:1.4}.related-post-link:hover .related-post-title{color:var(--color-accent)}.related-post-excerpt{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--space-2)}.related-post-date{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary)}/* =========================================== PRISM.JS SYNTAX HIGHLIGHTING OVERRIDES Customized for terminal aesthetic =========================================== *//* Token colors - VS Code Dark+ inspired */.post-content .token.comment,.post-content .token.prolog,.post-content .token.doctype,.post-content .token.cdata{color:#6a9955}.post-content .token.punctuation{color:#d4d4d4}.post-content .token.property,.post-content .token.tag,.post-content .token.boolean,.post-content .token.number,.post-content .token.constant,.post-content .token.symbol,.post-content .token.deleted{color:#b5cea8}.post-content .token.selector,.post-content .token.attr-name,.post-content .token.string,.post-content .token.char,.post-content .token.builtin,.post-content .token.inserted{color:#ce9178}.post-content .token.operator,.post-content .token.entity,.post-content .token.url,.post-content .language-css .token.string,.post-content .style .token.string{color:#d4d4d4}.post-content .token.atrule,.post-content .token.attr-value,.post-content .token.keyword{color:#569cd6}.post-content .token.function,.post-content .token.class-name{color:#dcdcaa}.post-content .token.regex,.post-content .token.important,.post-content .token.variable{color:#d16969}.post-content .token.important,.post-content .token.bold{font-weight:bold}.post-content .token.italic{font-style:italic}.post-content .token.entity{cursor:help}/* Line numbers for code blocks */.post-content pre.line-numbers{padding-left:3.8em;counter-reset:linenumber}.post-content pre.line-numbers > code{position:relative;white-space:inherit}.post-content .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #404040;user-select:none}.post-content .line-numbers-rows > span{display:block;counter-increment:linenumber}.post-content .line-numbers-rows > span:before{content:counter(linenumber);color:#858585;display:block;padding-right:0.8em;text-align:right}/* Print Styles */@media print{.nav, .footer-social, .btn-primary, .btn-secondary, .hero-actions{display:none}body{background:white;color:black}.section{padding:var(--space-8) 0;border:none}}