:root{--bg-primary: #F4F6F9;--bg-secondary: #FFFFFF;--bg-tertiary: #E8EDF4;--bg-card: rgba(255, 255, 255, 0.97);--bg-hover: rgba(37, 78, 143, 0.05);--bg-code: #EEF1F7;--border: rgba(30, 55, 100, 0.1);--border-hover: rgba(37, 78, 143, 0.35);--border-focus: rgba(37, 78, 143, 0.6);--text-primary: #1A2B4A;--text-secondary: #4A5D7A;--text-muted: #9BAABF;--text-code: #2A5FA8;--accent: #2A5FA8;--accent-dim: rgba(42, 95, 168, 0.08);--accent-glow: rgba(42, 95, 168, 0.16);--accent-2: #2D8C73;--accent-2-dim: rgba(45, 140, 115, 0.08);--accent-warm: #4A6FA8;--accent-gold: #B07D3A;--grad-from: #2A5FA8;--grad-to: #5B7EC2;--grad-text: linear-gradient(135deg, #1A3D78 0%, #2A5FA8 50%, #5B7EC2 100%);--shadow-sm: 0 1px 4px rgba(20, 40, 80, 0.06), 0 1px 2px rgba(20, 40, 80, 0.04);--shadow-md: 0 4px 16px rgba(20, 40, 80, 0.08), 0 2px 6px rgba(20, 40, 80, 0.05);--shadow-lg: 0 8px 36px rgba(20, 40, 80, 0.1), 0 4px 12px rgba(20, 40, 80, 0.06);--shadow-glow: 0 0 28px rgba(42, 95, 168, 0.12);--nav-height: 70px;--radius-sm: 6px;--radius: 10px;--radius-lg: 18px;--radius-xl: 26px;--ease: cubic-bezier(0.4, 0, 0.2, 1);--t-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);--t-base: 0.28s cubic-bezier(0.4, 0, 0.2, 1);--t-slow: 0.5s cubic-bezier(0.4, 0, 0.2, 1)}[data-theme="dark"]{--bg-primary: #0E1623;--bg-secondary: #132035;--bg-tertiary: #1A2C46;--bg-card: rgba(16, 28, 48, 0.92);--bg-hover: rgba(91, 126, 194, 0.07);--bg-code: #0B1220;--border: rgba(255, 255, 255, 0.07);--border-hover: rgba(91, 126, 194, 0.4);--border-focus: rgba(91, 126, 194, 0.65);--text-primary: #DDE6F2;--text-secondary: #7A8FA8;--text-muted: #364C66;--text-code: #7BAEE8;--accent: #5B8FD6;--accent-dim: rgba(91, 143, 214, 0.1);--accent-glow: rgba(91, 143, 214, 0.2);--accent-2: #3DAE90;--accent-2-dim: rgba(61, 174, 144, 0.1);--accent-warm: #7B9DD6;--accent-gold: #C4983A;--grad-from: #4A7CC8;--grad-to: #7B9DD6;--grad-text: linear-gradient(135deg, #4A7CC8 0%, #5B8FD6 50%, #7B9DD6 100%);--shadow-sm: 0 1px 8px rgba(0, 0, 0, 0.3);--shadow-md: 0 4px 24px rgba(0, 0, 0, 0.4);--shadow-lg: 0 8px 48px rgba(0, 0, 0, 0.5);--shadow-glow: 0 0 36px rgba(91, 143, 214, 0.15)}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}body{font-family:"DM Sans",system-ui,sans-serif;font-size:1rem;line-height:1.75;color:var(--text-primary);background-color:var(--bg-primary);transition:background-color var(--t-slow),color var(--t-slow);overflow-x:hidden;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:"Playfair Display",Georgia,serif;line-height:1.2;color:var(--text-primary);font-weight:700}h1{font-size:clamp(2.4rem, 5.5vw, 4rem);font-weight:800}h2{font-size:clamp(1.7rem, 3.5vw, 2.5rem)}h3{font-size:clamp(1.1rem, 2vw, 1.4rem)}h4{font-size:1rem;font-family:"DM Sans",system-ui,sans-serif;font-weight:600}p{color:var(--text-secondary);max-width:68ch}a{color:var(--accent);text-decoration:none;transition:opacity var(--t-fast)}a:hover{opacity:0.75}code,pre{font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.875em}pre{overflow-x:auto;border-radius:var(--radius);padding:1.5rem;background:var(--bg-code);border:1px solid var(--border);line-height:1.7}img{max-width:100%;height:auto;display:block}ul,ol{padding-left:1.25rem}li{color:var(--text-secondary)}hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}strong{color:var(--text-primary)}.container{width:100%;max-width:1140px;margin:0 auto;padding:0 1.5rem}@media (min-width: 1024px){.container{padding:0 2.5rem}}.section{padding:5rem 0}@media (max-width: 767px){.section{padding:3.5rem 0}}.section-label{font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.73rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:0.75rem;margin-bottom:0.6rem}.section-label::before{content:'';display:inline-block;width:28px;height:1px;background:var(--accent);opacity:0.6}.section-title{font-family:"Playfair Display",Georgia,serif;font-weight:800;margin-bottom:0.4rem}.section-desc{color:var(--text-secondary);max-width:54ch;font-size:1.05rem;margin-bottom:3rem}.section-header{margin-bottom:3rem}.gradient-text{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.text-accent{color:var(--accent)}.text-accent-2{color:var(--accent-2)}.text-muted{color:var(--text-muted)}.font-mono{font-family:"JetBrains Mono","Fira Code",monospace}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.reveal{opacity:0;transform:translateY(20px);transition:opacity 0.6s var(--ease),transform 0.6s var(--ease)}.reveal.revealed{opacity:1;transform:none}.stagger>*:nth-child(1){transition-delay:.08s}.stagger>*:nth-child(2){transition-delay:.16s}.stagger>*:nth-child(3){transition-delay:.24s}.stagger>*:nth-child(4){transition-delay:.32s}.stagger>*:nth-child(5){transition-delay:.4s}.stagger>*:nth-child(6){transition-delay:.48s}.stagger>*:nth-child(7){transition-delay:.56s}.stagger>*:nth-child(8){transition-delay:.64s}.delay-1{transition-delay:0.1s !important}.delay-2{transition-delay:0.2s !important}.delay-3{transition-delay:0.3s !important}.delay-4{transition-delay:0.4s !important}.page-content h2{margin:2rem 0 0.75rem}.page-content h3{margin:1.5rem 0 0.5rem}.page-content p{margin-bottom:1rem}.page-content ul,.page-content ol{margin-bottom:1rem}.page-content ul li,.page-content ol li{margin-bottom:0.3rem}.page-content .highlight{border-radius:var(--radius);margin:1.5rem 0}.page-content .highlight .hll{background:rgba(180,83,9,0.1)}.page-content .highlight .c,.page-content .highlight .cm,.page-content .highlight .c1{color:var(--text-muted);font-style:italic}.page-content .highlight .k,.page-content .highlight .kd,.page-content .highlight .kn{color:var(--accent)}.page-content .highlight .s,.page-content .highlight .s1,.page-content .highlight .s2{color:var(--accent-2)}.page-content .highlight .n{color:var(--text-primary)}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important}.reveal{opacity:1;transform:none}}@keyframes fadeInUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes blink{0%, 100%{opacity:1}50%{opacity:0}}@keyframes float{0%, 100%{transform:translateY(0px) rotate(-1deg)}50%{transform:translateY(-10px) rotate(1deg)}}@keyframes pulse-soft{0%, 100%{box-shadow:0 0 0 0 var(--accent-glow)}50%{box-shadow:0 0 0 6px transparent}}@keyframes scroll-hint{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(10px)}}@keyframes progress-reveal{from{width:0}}@keyframes shimmer-move{from{background-position:-200% center}to{background-position:200% center}}@keyframes ink-draw{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}@keyframes spin{to{transform:rotate(360deg)}}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-height);transition:background var(--t-base),border-color var(--t-base),box-shadow var(--t-base);border-bottom:1px solid transparent}.site-header.scrolled{background:color-mix(in srgb, var(--bg-primary) 88%, transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom-color:var(--border);box-shadow:var(--shadow-sm)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:var(--nav-height);max-width:1140px;margin:0 auto;padding:0 1.5rem}@media (min-width: 1024px){.nav-inner{padding:0 2.5rem}}.nav-logo{font-family:"Playfair Display",Georgia,serif;font-size:1.15rem;font-weight:800;color:var(--text-primary);letter-spacing:-0.01em;display:flex;align-items:center;gap:0.3rem;transition:color var(--t-fast)}.nav-logo .logo-dot{color:var(--accent);font-size:1.4em;line-height:0}.nav-logo:hover{opacity:1;color:var(--accent)}.nav-menu{display:flex;align-items:center;gap:0.15rem}@media (max-width: 767px){.nav-menu{display:none;position:fixed;inset:var(--nav-height) 0 0 0;background:var(--bg-primary);flex-direction:column;align-items:stretch;padding:2rem 1.5rem;gap:0.25rem;border-top:1px solid var(--border);overflow-y:auto}.nav-menu.open{display:flex}}.nav-link{font-size:0.9rem;font-weight:500;color:var(--text-secondary);padding:0.45rem 0.85rem;border-radius:var(--radius-sm);transition:all var(--t-fast);position:relative}.nav-link:hover{opacity:1;color:var(--text-primary);background:var(--bg-hover)}.nav-link.active{color:var(--accent);background:var(--accent-dim)}@media (max-width: 767px){.nav-link{font-size:1.05rem;padding:0.85rem 1rem;border-radius:var(--radius)}}.nav-actions{display:flex;align-items:center;gap:0.5rem}.theme-toggle{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all var(--t-fast)}.theme-toggle svg{width:17px;height:17px;transition:transform var(--t-base)}.theme-toggle:hover{color:var(--accent);border-color:var(--border-hover);background:var(--accent-dim)}.theme-toggle:hover svg{transform:rotate(18deg)}.theme-toggle .icon-moon{display:none}[data-theme="dark"] .theme-toggle .icon-sun{display:none}[data-theme="dark"] .theme-toggle .icon-moon{display:block}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:38px;height:38px;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:0 8px}.nav-toggle span{display:block;height:1.5px;background:var(--text-primary);border-radius:2px;transition:all var(--t-base);transform-origin:center}.nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.nav-toggle.open span:nth-child(2){opacity:0}.nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}@media (max-width: 767px){.nav-toggle{display:flex}}.site-footer{padding:2.5rem 0;border-top:1px solid var(--border);margin-top:5rem}.site-footer__inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.site-footer__copy{font-size:0.85rem;color:var(--text-muted);font-family:"JetBrains Mono","Fira Code",monospace;margin:0;max-width:none}.site-footer__copy a{color:var(--accent)}.site-footer__copy a:hover{opacity:0.7}.site-footer__links{display:flex;gap:1.25rem}.site-footer__links a{font-size:0.85rem;color:var(--text-muted);transition:color var(--t-fast)}.site-footer__links a:hover{opacity:1;color:var(--accent)}.btn{display:inline-flex;align-items:center;gap:0.5rem;padding:0.7rem 1.5rem;border-radius:var(--radius);font-family:"DM Sans",system-ui,sans-serif;font-size:0.92rem;font-weight:600;cursor:pointer;border:none;text-decoration:none;transition:all var(--t-base);white-space:nowrap;line-height:1}.btn svg{width:16px;height:16px;flex-shrink:0}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 2px 14px var(--accent-glow)}.btn-primary:hover{opacity:1;transform:translateY(-2px);box-shadow:0 6px 24px var(--accent-glow);background:var(--accent-warm)}.btn-outline{background:transparent;color:var(--accent);border:1.5px solid var(--border-hover)}.btn-outline:hover{opacity:1;background:var(--accent-dim);border-color:var(--accent);transform:translateY(-2px)}.btn-ghost{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover{opacity:1;color:var(--text-primary);border-color:var(--border-hover);transform:translateY(-1px)}.btn-sm{padding:0.42rem 0.9rem;font-size:0.82rem;border-radius:var(--radius-sm)}.btn-sm svg{width:14px;height:14px}.tag{font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.7rem;letter-spacing:0.03em;padding:0.22rem 0.6rem;border-radius:var(--radius-sm);background:var(--accent-dim);color:var(--accent);border:1px solid rgba(42,95,168,0.18);white-space:nowrap}[data-theme="dark"] .tag{border-color:rgba(91,143,214,0.2)}.availability-badge{display:inline-flex;align-items:center;gap:0.5rem;padding:0.3rem 0.85rem;border-radius:999px;border:1px solid rgba(74,124,89,0.3);background:rgba(74,124,89,0.08);font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.72rem;color:var(--accent-2);letter-spacing:0.05em}.availability-badge .pulse{width:7px;height:7px;border-radius:50%;background:var(--accent-2);animation:pulse-soft 2.2s ease-in-out infinite;flex-shrink:0}.social-links{display:flex;flex-wrap:wrap;align-items:center;gap:0.6rem}.social-link{display:inline-flex;align-items:center;gap:0.4rem;padding:0.45rem 0.85rem;border-radius:var(--radius);border:1px solid var(--border);color:var(--text-secondary);font-size:0.83rem;font-weight:500;background:transparent;transition:all var(--t-base)}.social-link svg{width:15px;height:15px}.social-link:hover{opacity:1;color:var(--accent);border-color:var(--border-hover);background:var(--accent-dim);transform:translateY(-2px)}.project-card{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform var(--t-base),box-shadow var(--t-base),border-color var(--t-base);position:relative}.project-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-color:var(--border-hover)}.project-card__thumb{aspect-ratio:16 / 9;background:var(--bg-secondary);overflow:hidden;position:relative}.project-card__thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--t-slow)}.project-card__thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2.75rem;background:linear-gradient(135deg, var(--bg-tertiary), var(--bg-secondary))}.project-card:hover .project-card__thumb img{transform:scale(1.05)}.project-card__status{position:absolute;top:0.65rem;right:0.65rem;font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.68rem;padding:0.2rem 0.55rem;border-radius:999px;background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary)}.project-card__status.completed{color:var(--accent-2);background:var(--accent-2-dim);border-color:rgba(74,124,89,0.2)}.project-card__status.in-progress{color:var(--accent-gold);background:rgba(217,119,6,0.1);border-color:rgba(217,119,6,0.2)}.project-card__body{padding:1.4rem;flex:1;display:flex;flex-direction:column;gap:0.65rem}.project-card__title{font-family:"Playfair Display",Georgia,serif;font-size:1.1rem;font-weight:700;color:var(--text-primary);line-height:1.3}.project-card__desc{color:var(--text-secondary);font-size:0.875rem;line-height:1.65;flex:1;margin:0;max-width:none}.project-card__tags{display:flex;flex-wrap:wrap;gap:0.35rem}.project-card__links{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;padding-top:0.9rem;border-top:1px solid var(--border)}.cert-card{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.4rem;display:flex;flex-direction:column;gap:0.6rem;transition:transform var(--t-base),box-shadow var(--t-base),border-color var(--t-base);position:relative;overflow:hidden}.cert-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:3px;background:var(--cert-color, var(--accent));border-radius:var(--radius-lg) var(--radius-lg) 0 0}.cert-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--border-hover)}.cert-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:0.5rem}.cert-card__icon{font-size:1.75rem;line-height:1}.cert-card__category{font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--cert-color, var(--accent));padding:0.15rem 0.55rem;border-radius:999px;border:1px solid var(--cert-color, var(--accent));opacity:0.85}.cert-card__title{font-family:"Playfair Display",Georgia,serif;font-size:1rem;font-weight:700;color:var(--text-primary);line-height:1.3}.cert-card__issuer{font-size:0.85rem;color:var(--text-secondary);font-weight:500;margin:0;max-width:none}.cert-card__desc{font-size:0.85rem;color:var(--text-secondary);line-height:1.65;flex:1;margin:0;max-width:none}.cert-card__footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.5rem;margin-top:auto;padding-top:0.75rem;border-top:1px solid var(--border)}.cert-card__date{font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.75rem;color:var(--text-muted)}.cert-card__verify{display:inline-flex;align-items:center;gap:0.3rem;font-size:0.8rem;font-weight:600;color:var(--accent);transition:opacity var(--t-fast)}.cert-card__verify:hover{opacity:0.7}.cert-card__verify svg{width:12px;height:12px}.timeline{position:relative;padding-left:1.75rem}.timeline::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:1.5px;background:linear-gradient(to bottom, var(--accent) 0%, transparent 100%);border-radius:2px}.timeline-item{position:relative;padding-bottom:2.5rem}.timeline-item:last-child{padding-bottom:0}.timeline-item::before{content:'';position:absolute;left:-2.2rem;top:5px;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.timeline-item.current::before{animation:pulse-soft 2.2s ease-in-out infinite}.timeline-item__header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:0.4rem 1rem;margin-bottom:0.35rem}.timeline-item__org{font-family:"Playfair Display",Georgia,serif;font-size:1.05rem;font-weight:700;color:var(--text-primary);line-height:1.25}.timeline-item__role{font-size:0.9rem;color:var(--accent);font-weight:600;margin-bottom:0.2rem}.timeline-item__period{font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.75rem;color:var(--text-muted);white-space:nowrap}.timeline-item__meta{font-size:0.83rem;color:var(--text-secondary);display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;margin-bottom:0.5rem;margin:0;max-width:none}.timeline-item__desc{font-size:0.9rem;color:var(--text-secondary);line-height:1.7;margin:0.6rem 0;max-width:none}.timeline-item__highlights{list-style:none;padding:0;display:flex;flex-direction:column;gap:0.3rem;margin:0.5rem 0}.timeline-item__highlights li{font-size:0.875rem;color:var(--text-secondary);display:flex;align-items:flex-start;gap:0.5rem}.timeline-item__highlights li::before{content:'—';color:var(--accent);font-family:"JetBrains Mono","Fira Code",monospace;flex-shrink:0;opacity:0.7}.timeline-item__chips{display:flex;flex-wrap:wrap;gap:0.3rem;margin-top:0.65rem}.timeline-item__modules{display:flex;flex-wrap:wrap;gap:0.3rem;margin-top:0.5rem}.type-pill{font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.68rem;letter-spacing:0.06em;padding:0.15rem 0.55rem;border-radius:999px;text-transform:uppercase}.type-pill.internship{background:var(--accent-dim);color:var(--accent)}.type-pill.volunteer{background:var(--accent-2-dim);color:var(--accent-2)}.type-pill.freelance{background:rgba(194,101,42,0.1);color:var(--accent-warm)}.skill-tabs{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:2rem}.skill-tab,.filter-btn{padding:0.42rem 1rem;border-radius:var(--radius);font-size:0.875rem;font-weight:500;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--text-secondary);transition:all var(--t-fast);font-family:"DM Sans",system-ui,sans-serif}.skill-tab:hover,.filter-btn:hover,.skill-tab.active,.active.filter-btn{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.skill-panel{display:none}.skill-panel.active{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}@media (max-width: 767px){.skill-panel.active{grid-template-columns:1fr}}.skill-item{display:flex;flex-direction:column;gap:0.35rem}.skill-item__header{display:flex;align-items:center;justify-content:space-between}.skill-item__name{display:flex;align-items:center;gap:0.5rem;font-size:0.9rem;font-weight:600;color:var(--text-primary)}.skill-item__name i{font-size:1.05rem;color:var(--accent)}.skill-item__pct{font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.72rem;color:var(--text-muted)}.skill-item__track{height:4px;border-radius:99px;background:var(--bg-tertiary);overflow:hidden}.skill-item__bar{height:100%;border-radius:99px;background:linear-gradient(90deg, var(--grad-from), var(--grad-to));width:0;transition:width 1.1s cubic-bezier(0.34, 1.56, 0.64, 1)}.code-window{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}.code-window__bar{display:flex;align-items:center;padding:0.55rem 0.75rem 0.55rem 1rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border);gap:0.5rem;user-select:none}.code-window__fname{font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.75rem;color:var(--text-muted);flex:1}.code-window__win-btns{display:flex;align-items:stretch;gap:0;margin-left:auto;height:28px}.code-window .win-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;font-size:0.7rem;color:var(--text-muted);border-radius:var(--radius-sm);transition:background var(--t-fast),color var(--t-fast);cursor:default;line-height:1}.code-window .win-btn--min:hover{background:rgba(120,120,120,0.25);color:var(--text-primary)}.code-window .win-btn--max:hover{background:rgba(120,120,120,0.25);color:var(--text-primary)}.code-window .win-btn--close{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.code-window .win-btn--close:hover{background:#c42b1c;color:#fff}.code-window__body{padding:1.4rem;background:var(--bg-code);font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.8rem;line-height:1.9}.code-window__body .kw{color:#1A5FA8;font-weight:600}.code-window__body .fn{color:#2D8C73}.code-window__body .st{color:#2D6FA8}.code-window__body .cm{color:var(--text-muted);font-style:italic}.code-window__body .cl{color:#4A6FA8}.code-window__body .nm{color:#B07D3A}.code-window__body .op{color:var(--text-muted)}[data-theme="dark"] .code-window__body .kw{color:#7BAEE8}[data-theme="dark"] .code-window__body .fn{color:#3DAE90}[data-theme="dark"] .code-window__body .st{color:#89B4D6}[data-theme="dark"] .code-window__body .cl{color:#7B9DD6}[data-theme="dark"] .code-window__body .nm{color:#C4983A}.video-embed{margin:2rem 0;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:16 / 9;border:1px solid var(--border);box-shadow:var(--shadow-md)}.video-embed iframe{width:100%;height:100%;border:none;display:block}.demo-embed{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin:2rem 0}.demo-embed__bar{display:flex;align-items:center;gap:0.65rem;padding:0.7rem 1.1rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border);font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.75rem;color:var(--text-muted)}.demo-embed .live-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-2);animation:pulse-soft 2s ease-in-out infinite}.demo-embed iframe{width:100%;height:500px;border:none;display:block}.page-hero{padding:calc(var(--nav-height) + 4rem) 0 3.5rem;background:linear-gradient(180deg, var(--bg-secondary) 0%, var(--bg-primary) 100%);border-bottom:1px solid var(--border);margin-bottom:3.5rem;position:relative;overflow:hidden}.page-hero::after{content:'';position:absolute;top:0;right:-100px;width:500px;height:100%;background:radial-gradient(ellipse at right, var(--accent-dim) 0%, transparent 65%);pointer-events:none}.page-hero__eyebrow{margin-bottom:0.75rem;position:relative;z-index:1}.page-hero__title{margin-bottom:0.5rem;position:relative;z-index:1}.page-hero__desc{font-size:1.05rem;color:var(--text-secondary);max-width:55ch;margin:0;position:relative;z-index:1}.project-hero{padding:calc(var(--nav-height) + 2.5rem) 0 0}.project-hero__image{width:100%;max-height:440px;object-fit:cover;border-radius:var(--radius-xl);border:1px solid var(--border);box-shadow:var(--shadow-lg);margin-bottom:2.5rem}.project-hero__meta{display:flex;flex-wrap:wrap;align-items:center;gap:0.65rem;margin-bottom:0.75rem}.project-hero__title{margin-bottom:1rem}.project-hero__desc{font-size:1.08rem;color:var(--text-secondary);max-width:68ch;margin-bottom:1.5rem}.project-hero__links{display:flex;flex-wrap:wrap;gap:0.65rem;margin-bottom:2rem}.project-layout{display:grid;grid-template-columns:1fr 280px;gap:3rem;padding-bottom:5rem}@media (max-width: 767px){.project-layout{grid-template-columns:1fr}}.project-layout__main{min-width:0}.project-layout__main h2{margin:2rem 0 0.75rem}.project-layout__main h3{margin:1.5rem 0 0.6rem}.project-layout__main p{margin-bottom:1rem}.project-layout__main ul,.project-layout__main ol{margin-bottom:1rem}@media (max-width: 767px){.project-sidebar{order:-1}}.project-sidebar__card{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.4rem;position:sticky;top:calc(var(--nav-height) + 1.5rem)}.project-sidebar h4{font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:0.65rem}.project-sidebar .tag-list{display:flex;flex-wrap:wrap;gap:0.35rem;margin-bottom:1.25rem}.project-sidebar .link-list{display:flex;flex-direction:column;gap:0.45rem}.stats-strip{display:flex;flex-wrap:wrap;gap:1rem;margin:2rem 0}.stat-chip{background:var(--bg-card);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.4rem;flex:1;min-width:130px;text-align:center}.stat-chip__num{display:block;font-family:"Playfair Display",Georgia,serif;font-size:1.8rem;font-weight:800;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1;margin-bottom:0.2rem}.stat-chip__lbl{font-size:0.78rem;color:var(--text-secondary);font-weight:500}.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:calc(var(--nav-height) + 2rem) 0 5rem;overflow:hidden}.hero__bg{position:absolute;inset:0;pointer-events:none;z-index:0}.hero__bg-lines{position:absolute;inset:0;background-image:radial-gradient(circle, rgba(42,95,168,0.1) 1px, transparent 1px);background-size:28px 28px;mask-image:radial-gradient(ellipse at 60% 40%, #000 30%, transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 60% 40%, #000 30%, transparent 75%)}.hero__bg-warm{position:absolute;top:-10%;right:-5%;width:55%;height:70%;background:radial-gradient(ellipse at top right, rgba(42,95,168,0.07) 0%, rgba(91,126,194,0.04) 40%, transparent 70%);border-radius:50%}.hero__bg-cool{position:absolute;bottom:-5%;left:-5%;width:40%;height:50%;background:radial-gradient(ellipse, rgba(45,140,115,0.05) 0%, transparent 65%);border-radius:50%}.hero__inner{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr 0.9fr;gap:4rem;align-items:center}@media (max-width: 767px){.hero__inner{grid-template-columns:1fr;gap:3rem}}.hero__content{display:flex;flex-direction:column;gap:1.2rem}.hero__eyebrow{margin-bottom:0}.hero__name{font-family:"Playfair Display",Georgia,serif;font-size:clamp(2.8rem, 6.5vw, 4.8rem);font-weight:800;line-height:1.05;letter-spacing:-0.02em;color:var(--text-primary)}.hero__role{font-size:clamp(1rem, 2.2vw, 1.25rem);color:var(--text-secondary);display:flex;align-items:center;gap:0.4rem;flex-wrap:wrap;min-height:2em;font-weight:400}.hero__typed{color:var(--accent);font-weight:600}.hero__cursor{color:var(--accent);animation:blink 0.85s step-end infinite;font-weight:200;font-size:1.2em;line-height:0}.hero__desc{font-size:1rem;color:var(--text-secondary);max-width:45ch;line-height:1.75;margin:0}.hero__actions{display:flex;flex-wrap:wrap;gap:0.7rem;padding-top:0.25rem}@media (max-width: 767px){.hero__visual{display:none}}.hero__scroll{position:absolute;bottom:2.25rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:0.45rem;color:var(--text-muted);font-family:"JetBrains Mono","Fira Code",monospace;font-size:0.68rem;letter-spacing:0.12em;z-index:1;text-transform:uppercase}.hero__scroll .arrow{width:14px;height:14px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);animation:scroll-hint 1.6s ease-in-out infinite}.featured{background:var(--bg-secondary);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.featured__grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(310px, 1fr));gap:1.5rem}@media (max-width: 580px){.featured__grid{grid-template-columns:1fr}}.about-strip__inner{display:grid;grid-template-columns:auto 1fr;gap:5rem;align-items:center}@media (max-width: 767px){.about-strip__inner{grid-template-columns:1fr;gap:2.5rem}}.about-strip__portrait{position:relative}@media (max-width: 767px){.about-strip__portrait{margin:0 auto}}.about-strip__portrait-img{width:240px;height:240px;border-radius:20px;object-fit:cover;border:2px solid var(--border);box-shadow:var(--shadow-lg);display:block}.about-strip__portrait-placeholder{width:240px;height:240px;border-radius:20px;background:linear-gradient(145deg, var(--bg-tertiary), var(--bg-secondary));border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:4.5rem;box-shadow:var(--shadow-lg)}.about-strip__portrait::after{content:'';position:absolute;inset:-8px;border-radius:24px;border:1.5px solid var(--border);pointer-events:none;transform:rotate(2deg)}.about-strip__facts{list-style:none;padding:0;display:flex;flex-direction:column;gap:0.55rem;margin:1.1rem 0}.about-strip__facts li{display:flex;align-items:center;gap:0.6rem;font-size:0.9rem;color:var(--text-secondary)}.about-strip__facts li .icon{font-size:1rem}.about-strip__facts li strong{color:var(--text-primary);font-weight:600}.skills-section{background:var(--bg-secondary);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.projects-filter{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:2.5rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:1.5rem}@media (max-width: 580px){.projects-grid{grid-template-columns:1fr}}.certs-filter{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:2.5rem}.certs-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(290px, 1fr));gap:1.5rem}@media (max-width: 580px){.certs-grid{grid-template-columns:1fr}}.about-page__hero{padding:calc(var(--nav-height) + 4rem) 0 4rem;background:linear-gradient(180deg, var(--bg-secondary), var(--bg-primary));border-bottom:1px solid var(--border);position:relative;overflow:hidden}.about-page__hero::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle, rgba(42,95,168,0.07) 1px, transparent 1px);background-size:28px 28px;mask-image:radial-gradient(ellipse at 80% 50%, #000 20%, transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 80% 50%, #000 20%, transparent 70%)}.about-page__inner{display:grid;grid-template-columns:auto 1fr;gap:4rem;align-items:start;position:relative;z-index:1}@media (max-width: 767px){.about-page__inner{grid-template-columns:1fr;gap:2.5rem}}.about-page__portrait-wrap{position:relative}@media (max-width: 767px){.about-page__portrait-wrap{margin:0 auto}}.about-page__portrait-wrap::after{content:'';position:absolute;inset:-10px;border-radius:26px;border:1.5px dashed var(--border-hover);pointer-events:none;transform:rotate(2.5deg)}.about-page__portrait{width:220px;height:220px;border-radius:20px;object-fit:cover;border:2px solid var(--border);box-shadow:var(--shadow-lg);display:block}.about-page__portrait-placeholder{width:220px;height:220px;border-radius:20px;background:linear-gradient(145deg, var(--bg-tertiary), var(--bg-secondary));border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:4rem}.about-page__bio{display:flex;flex-direction:column;gap:1rem}.about-page__bio p{max-width:none}.two-col-section{display:grid;grid-template-columns:1fr 1fr;gap:5rem}@media (max-width: 767px){.two-col-section{grid-template-columns:1fr;gap:3.5rem}}
