:root{--color-primary: #2563eb;--color-primary-dark: #1e40af;--color-primary-light: #3b82f6;--color-primary-lighter: #60a5fa;--color-secondary: #0ea5e9;--color-secondary-dark: #0284c7;--color-secondary-light: #38bdf8;--color-accent: #06b6d4;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--bg-main: #fafafa;--bg-secondary: #ffffff;--bg-tertiary: #f8fafc;--bg-hover: #f1f5f9;--text-primary: #1e293b;--text-secondary: #475569;--text-muted: #64748b;--text-light: #94a3b8;--border-light: #f1f5f9;--border-base: #e2e8f0;--border-medium: #cbd5e1;--border-dark: #94a3b8;--shadow-sm: rgba(0, 0, 0, .05);--shadow-base: rgba(0, 0, 0, .1);--shadow-md: rgba(0, 0, 0, .15);--shadow-lg: rgba(0, 0, 0, .2);--shadow-primary: rgba(37, 99, 235, .1);--shadow-primary-strong: rgba(37, 99, 235, .2);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 1.7;--tracking-tighter: -.03em;--tracking-tight: -.02em;--tracking-normal: 0em;--tracking-wide: .025em;--space-1: .25rem;--space-2: .5rem;--space-3: .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: 4px;--radius-base: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--transition-all: all .2s ease;--z-base: 1;--z-dropdown: 10;--z-sticky: 100;--z-fixed: 200;--z-modal: 300;--z-popover: 400;--z-tooltip: 500;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1200px;--container-2xl: 1400px;--shadow-xs: 0 1px 2px var(--shadow-sm);--shadow-default: 0 1px 3px var(--shadow-sm);--shadow-medium: 0 4px 6px var(--shadow-base);--shadow-large: 0 8px 16px var(--shadow-base);--shadow-xl: 0 12px 24px var(--shadow-md);--shadow-2xl: 0 20px 40px var(--shadow-lg);--shadow-card: var(--shadow-default);--shadow-card-hover: 0 8px 24px var(--shadow-primary)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--font-normal);line-height:var(--leading-loose);color:var(--text-primary);background:var(--bg-main);min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:var(--font-bold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--text-primary)}h1{font-size:var(--text-5xl);font-weight:var(--font-extrabold)}h2{font-size:var(--text-4xl)}h3{font-size:var(--text-2xl);font-weight:var(--font-semibold)}h4{font-size:var(--text-xl);font-weight:var(--font-semibold)}h5{font-size:var(--text-lg);font-weight:var(--font-medium)}h6{font-size:var(--text-base);font-weight:var(--font-medium)}p{margin-bottom:var(--space-4);line-height:var(--leading-loose)}a{color:var(--color-primary);text-decoration:none;transition:var(--transition-base)}a:hover{color:var(--color-primary-dark)}.container{max-width:var(--container-xl);margin:0 auto;padding:0 var(--space-5)}.container-short{max-width:var(--container-xl);margin:0 auto}header{background:var(--bg-secondary);border-bottom:1px solid var(--border-base);padding:var(--space-8) 0;position:sticky;top:0;z-index:var(--z-sticky);backdrop-filter:blur(10px);box-shadow:var(--shadow-default)}header h1{color:var(--text-primary);font-size:var(--text-4xl);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight)}header .subtitle{color:var(--text-muted);font-size:var(--text-lg);margin-top:var(--space-2);font-weight:var(--font-normal)}main{padding:var(--space-8) 0}section{margin-bottom:var(--space-16)}h2{color:var(--text-primary);font-size:var(--text-4xl);margin-bottom:var(--space-8);font-weight:var(--font-bold);letter-spacing:var(--tracking-tight);padding-bottom:var(--space-3);border-bottom:3px solid var(--color-primary);display:inline-block;width:100%}.card{background:var(--bg-secondary);border:1px solid var(--border-base);border-radius:var(--radius-md);padding:var(--space-8);margin-bottom:var(--space-6);transition:var(--transition-all);box-shadow:var(--shadow-card)}.card:hover{background:var(--bg-hover);border-color:var(--color-primary);transform:translateY(-4px);box-shadow:var(--shadow-card-hover)}.card h3{color:var(--text-primary);margin-bottom:var(--space-3);font-size:var(--text-2xl);font-weight:var(--font-semibold);letter-spacing:var(--tracking-normal)}.card p{color:var(--text-muted);margin-bottom:var(--space-3);line-height:var(--leading-loose)}.btn{display:inline-block;padding:var(--space-3) var(--space-8);background:var(--color-primary);color:#fff;border-radius:var(--radius-base);font-weight:var(--font-semibold);font-size:var(--text-base);text-align:center;transition:var(--transition-base);border:2px solid var(--color-primary);cursor:pointer}.btn:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-card-hover);color:#fff}.btn-secondary{background:var(--bg-secondary);border:2px solid var(--color-primary);color:var(--color-primary)}.btn-secondary:hover{background:var(--color-primary);color:#fff}.btn-small{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);border:none;cursor:pointer;transition:var(--transition-all)}.btn-small:hover{transform:translateY(-1px)}.badge{display:inline-block;padding:var(--space-1) var(--space-3);background:var(--color-primary);color:#fff;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-medium);margin-right:var(--space-2);margin-bottom:var(--space-2)}.tech-badge{background:#eff6ff;border:1px solid #bfdbfe;color:var(--color-primary)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6)}.hero{text-align:center;padding:var(--space-16) var(--space-8);background:linear-gradient(135deg,#eff6ff,#f0f9ff);border-radius:var(--radius-lg);margin-bottom:var(--space-16);border:1px solid var(--border-base)}.hero h1{font-size:var(--text-5xl);margin-bottom:var(--space-4);color:var(--text-primary);font-weight:var(--font-extrabold);letter-spacing:var(--tracking-tighter)}.hero p{font-size:var(--text-xl);color:var(--text-muted);margin-bottom:var(--space-10);font-weight:var(--font-normal)}.loading{text-align:center;padding:var(--space-12);color:var(--text-muted)}footer{background:var(--bg-secondary);border-top:1px solid var(--border-base);padding:var(--space-12) 0;margin-top:var(--space-24);text-align:center}footer p{color:var(--text-muted);font-size:var(--text-sm)}.cert-logo{width:96px;height:96px;object-fit:contain;margin-bottom:var(--space-6)}@media(max-width:768px){:root{--text-5xl: 2rem;--text-4xl: 1.75rem;--text-3xl: 1.5rem}.hero{padding:var(--space-12) var(--space-6)}.container{padding:0 var(--space-4)}.grid{grid-template-columns:1fr}}@media(max-width:480px){header{padding:var(--space-6) 0}.card{padding:var(--space-6)}.btn{width:100%;padding:var(--space-3) var(--space-6)}}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.font-bold{font-weight:var(--font-bold)}.font-semibold{font-weight:var(--font-semibold)}.font-medium{font-weight:var(--font-medium)}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.network-svg-section[data-astro-cid-6txwjg5o]{margin:2.5rem 0 2rem;padding:1.5rem 0 1rem;background:var(--bg-secondary);border-radius:var(--radius-md);text-align:center}.svg-legend[data-astro-cid-6txwjg5o]{display:flex;gap:2rem;justify-content:center;margin-top:1rem;font-size:1rem;color:var(--text-muted)}.legend-switch[data-astro-cid-6txwjg5o]{display:inline-block;width:18px;height:18px;background:#2563eb;border-radius:50%;margin-right:.5em;border:2px solid #1e40af}.legend-host[data-astro-cid-6txwjg5o]{display:inline-block;width:18px;height:18px;background:#60a5fa;border-radius:6px;margin-right:.5em;border:2px solid #2563eb}.legend-link[data-astro-cid-6txwjg5o]{display:inline-block;width:24px;height:4px;background:#64748b;border-radius:2px;margin-right:.5em}.project-card[data-astro-cid-sxfb66rq]{background:var(--bg-tertiary);border-radius:16px;box-shadow:0 2px 8px #0000000a;padding:1.5rem 2rem;min-width:260px;max-width:700px;display:flex;flex-direction:column;align-items:center;margin-bottom:2rem}.project-card[data-astro-cid-cbunuzkm]{background:var(--bg-tertiary);border-radius:16px;box-shadow:0 2px 8px #0000000a;padding:1.5rem 2rem;min-width:260px;max-width:340px;display:flex;flex-direction:column;align-items:center;margin-bottom:2rem}.project-image[data-astro-cid-cbunuzkm]{width:100%;max-width:220px;border-radius:10px;margin-bottom:1rem;background:#f3f4f6}.project-card[data-astro-cid-od6jutsu]{background:var(--bg-tertiary);border-radius:16px;box-shadow:0 2px 8px #0000000a;padding:1.5rem 2rem;min-width:260px;max-width:340px;display:flex;flex-direction:column;align-items:center;margin-bottom:2rem}.project-image[data-astro-cid-od6jutsu]{width:100%;max-width:220px;border-radius:10px;margin-bottom:1rem;background:#f3f4f6}.project-card[data-astro-cid-ev74qwsf]{background:var(--bg-tertiary);border-radius:16px;box-shadow:0 2px 8px #0000000a;padding:1.5rem 2rem;min-width:260px;max-width:700px;display:flex;flex-direction:column;align-items:flex-start;margin-bottom:2rem}.project-features[data-astro-cid-ev74qwsf]{margin:1rem 0 1.5rem 1.2rem;color:var(--text-muted);font-size:1.05rem;list-style:disc}.projects-grid[data-astro-cid-ncpqzoed]{display:flex;gap:2rem;flex-wrap:wrap;justify-content:center;margin-top:2rem}.project-card[data-astro-cid-ncpqzoed]{background:var(--bg-tertiary);border-radius:16px;box-shadow:0 2px 8px #0000000a;padding:1.5rem 2rem;min-width:260px;max-width:340px;display:flex;flex-direction:column;align-items:center}.project-image[data-astro-cid-ncpqzoed]{width:100%;max-width:220px;border-radius:10px;margin-bottom:1rem;background:#f3f4f6}.cert-card[data-astro-cid-n357i2j7]{text-align:center}.cert-card[data-astro-cid-n357i2j7] a[data-astro-cid-n357i2j7]{margin-top:1rem;display:inline-block}.blog-section[data-astro-cid-b4mpjmb3]{margin:3rem 0 2rem;padding:2rem 0 1rem;background:var(--bg-secondary);border-radius:var(--radius-md)}.blog-section[data-astro-cid-b4mpjmb3] h2[data-astro-cid-b4mpjmb3]{text-align:center;margin-bottom:2rem}.blog-grid[data-astro-cid-b4mpjmb3]{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center}.blog-card[data-astro-cid-b4mpjmb3]{background:var(--bg-primary);border:1px solid var(--border-base);border-radius:var(--radius-base);padding:1.5rem 1.25rem;max-width:340px;min-width:260px;box-shadow:0 1px 4px #00000008;display:flex;flex-direction:column;text-decoration:none;color:var(--text-primary);transition:box-shadow .2s,border .2s}.blog-card[data-astro-cid-b4mpjmb3]:hover{border:1.5px solid var(--color-primary);box-shadow:0 2px 12px #3c78ff14}.blog-title[data-astro-cid-b4mpjmb3]{font-size:1.15rem;font-weight:600;margin-bottom:.5rem}.blog-date[data-astro-cid-b4mpjmb3]{font-size:.95rem;color:var(--text-muted);margin-bottom:.75rem}.blog-summary[data-astro-cid-b4mpjmb3]{font-size:1rem;color:var(--text-primary)}.repo-card[data-astro-cid-hgc46l7x] h3[data-astro-cid-hgc46l7x] a[data-astro-cid-hgc46l7x]{color:var(--primary)}.repo-card[data-astro-cid-hgc46l7x] h3[data-astro-cid-hgc46l7x] a[data-astro-cid-hgc46l7x]:hover{color:var(--secondary)}.topics[data-astro-cid-hgc46l7x]{margin:1rem 0 .5rem}.repo-meta[data-astro-cid-hgc46l7x]{display:flex;align-items:center;gap:1rem;margin-top:1rem}.stars[data-astro-cid-hgc46l7x]{color:var(--text-muted);font-size:.875rem}.topology-container[data-astro-cid-qnl5kwwu]{background:var(--bg-secondary);border:1px solid var(--border-base);border-radius:var(--radius-md);padding:var(--space-6);margin-bottom:var(--space-4)}.topology-header[data-astro-cid-qnl5kwwu]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);flex-wrap:wrap;gap:var(--space-4)}.topology-header[data-astro-cid-qnl5kwwu] p[data-astro-cid-qnl5kwwu]{color:var(--text-muted);margin:0}.topology-controls[data-astro-cid-qnl5kwwu]{display:flex;gap:var(--space-2)}.btn-small[data-astro-cid-qnl5kwwu]{padding:var(--space-2) var(--space-4);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-base);font-size:var(--text-sm);cursor:pointer;transition:var(--transition-all)}.btn-small[data-astro-cid-qnl5kwwu]:hover{background:var(--color-primary-dark);transform:translateY(-1px)}.network-diagram[data-astro-cid-qnl5kwwu]{width:100%;height:600px;background:var(--bg-tertiary);border:2px solid var(--border-base);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.node-info-panel[data-astro-cid-qnl5kwwu]{background:var(--bg-secondary);border:1px solid var(--border-base);border-radius:var(--radius-md);padding:var(--space-8);min-height:150px;margin-bottom:var(--space-4)}.node-info-panel[data-astro-cid-qnl5kwwu] h3[data-astro-cid-qnl5kwwu]{color:var(--text-primary);margin-bottom:var(--space-3);font-size:var(--text-2xl);font-weight:var(--font-semibold)}.node-info-panel[data-astro-cid-qnl5kwwu] p[data-astro-cid-qnl5kwwu]{color:var(--text-muted);margin-bottom:var(--space-3)}.node-info-panel[data-astro-cid-qnl5kwwu] .specs[data-astro-cid-qnl5kwwu]{margin-top:var(--space-6)}.node-info-panel[data-astro-cid-qnl5kwwu] .specs[data-astro-cid-qnl5kwwu] strong[data-astro-cid-qnl5kwwu]{color:var(--color-primary)}.node-info-panel[data-astro-cid-qnl5kwwu] .repo-link[data-astro-cid-qnl5kwwu]{margin-top:var(--space-4);display:inline-block}.topology-legend[data-astro-cid-qnl5kwwu]{background:var(--bg-secondary);border:1px solid var(--border-base);border-radius:var(--radius-md);padding:var(--space-6)}.topology-legend[data-astro-cid-qnl5kwwu] h4[data-astro-cid-qnl5kwwu]{color:var(--text-primary);margin-bottom:var(--space-4);font-size:var(--text-lg);font-weight:var(--font-semibold)}.legend-items[data-astro-cid-qnl5kwwu]{display:flex;flex-wrap:wrap;gap:var(--space-4)}.legend-item[data-astro-cid-qnl5kwwu]{display:flex;align-items:center;gap:var(--space-2)}.legend-color[data-astro-cid-qnl5kwwu]{width:20px;height:20px;border-radius:var(--radius-sm);border:1px solid var(--border-base)}@media(max-width:768px){.network-diagram[data-astro-cid-qnl5kwwu]{height:400px}.topology-header[data-astro-cid-qnl5kwwu]{flex-direction:column;align-items:flex-start}.topology-controls[data-astro-cid-qnl5kwwu]{width:100%;justify-content:flex-start}.btn-small[data-astro-cid-qnl5kwwu]{flex:1}}.resume-display[data-astro-cid-j7pv25f6] hr{border:none;border-top:1px solid var(--border-base);margin:2rem 0}:root{--bg-primary: #fff;--bg-secondary: #f3f4f6;--bg-tertiary: #e5e7eb;--text-primary: #1e293b;--text-muted: #64748b;--color-primary: #2563eb;--color-primary-dark: #1e40af;--border-base: #d1d5db;--radius-md: 16px;--radius-base: 8px;--space-2: .5rem;--space-4: 1rem;--space-6: 1.5rem;--text-sm: .95rem;--transition-all: .2s;--hero-title-size: 2.2rem;--hero-subtitle-size: 1.1rem}html.dark{--bg-primary: #18181b;--bg-secondary: #232336;--bg-tertiary: #232336;--text-primary: #f3f4f6;--text-muted: #a1a1aa;--color-primary: #60a5fa;--color-primary-dark: #2563eb;--border-base: #27272a;--hero-title-size: 2.2rem;--hero-subtitle-size: 1.1rem}.hero[data-astro-cid-j7pv25f6]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem 0 .5rem;margin-bottom:1.5rem;background:none}.compact-hero[data-astro-cid-j7pv25f6] h1[data-astro-cid-j7pv25f6]{font-size:var(--hero-title-size);margin-bottom:.3rem;color:var(--text-primary);font-weight:700;letter-spacing:-1px}.compact-hero[data-astro-cid-j7pv25f6] p[data-astro-cid-j7pv25f6]{font-size:var(--hero-subtitle-size);margin-bottom:.7rem;color:var(--text-muted)}.hero-links[data-astro-cid-j7pv25f6]{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}body,html{background:var(--bg-primary);color:var(--text-primary);transition:background .2s,color .2s}@media print{body,html{background:#fff!important;color:#000!important}header[data-astro-cid-j7pv25f6],nav[data-astro-cid-j7pv25f6],.hero[data-astro-cid-j7pv25f6],.btn[data-astro-cid-j7pv25f6],.projects-grid[data-astro-cid-j7pv25f6],.topology-container[data-astro-cid-j7pv25f6],.card[data-astro-cid-j7pv25f6]:not(.resume-content),.resume-actions[data-astro-cid-j7pv25f6],.vpc-topology-grid[data-astro-cid-j7pv25f6],.topology-legend[data-astro-cid-j7pv25f6],.node-info-panel[data-astro-cid-j7pv25f6],.btn-small[data-astro-cid-j7pv25f6],.badge[data-astro-cid-j7pv25f6],.legend-items[data-astro-cid-j7pv25f6],.legend-item[data-astro-cid-j7pv25f6],.vpc-label[data-astro-cid-j7pv25f6],.vpc-node-link[data-astro-cid-j7pv25f6],.vpc-node-desc[data-astro-cid-j7pv25f6],.vpc-group[data-astro-cid-j7pv25f6]:not(.resume-content){display:none!important}.resume-content[data-astro-cid-j7pv25f6],.resume-display[data-astro-cid-j7pv25f6],#resume[data-astro-cid-j7pv25f6]{display:block!important;background:#fff!important;color:#000!important;box-shadow:none!important;border:none!important;padding:0!important;margin:0!important;width:100%!important;min-width:0!important}iframe[data-astro-cid-j7pv25f6]{width:100vw!important;height:100vh!important;border:none!important}}.resume-content[data-astro-cid-j7pv25f6]{max-width:100%}.resume-display[data-astro-cid-j7pv25f6]{padding:2rem 0;background:var(--bg-tertiary);border:1px solid var(--border-base);border-radius:var(--radius-md);margin-top:1rem;max-width:100%;overflow-x:auto;min-height:900px}
