:root{--color-bg: #fafafa;--color-bg-alt: #f0f0f0;--color-surface: #ffffff;--color-text: #1a1a1a;--color-text-muted: #6b7280;--color-accent: #4f6d7a;--color-accent-hover: #3b5563;--color-border: #e5e7eb;--color-overlay: rgba(0, 0, 0, .85);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--text-4xl: 2.75rem;--line-height: 1.6;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--max-width: 1100px;--nav-height: 64px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--transition: .25s ease}.dark-mode{--color-bg: #0f1117;--color-bg-alt: #1a1d27;--color-surface: #1e2029;--color-text: #e4e4e7;--color-text-muted: #9ca3af;--color-accent: #7fb3c8;--color-accent-hover: #a0d0e0;--color-border: #2e3039;--color-overlay: rgba(0, 0, 0, .92);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height)}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--line-height);color:var(--color-text);background-color:var(--color-bg);min-width:320px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition),color var(--transition)}html.dark-mode body{background-color:var(--color-bg)}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--color-accent-hover);text-decoration:underline}img{display:block;max-width:100%}button{font-family:inherit;cursor:pointer}ul,ol{list-style:none}.site-wrapper{min-height:100vh;background-color:var(--color-bg);color:var(--color-text);transition:background-color var(--transition),color var(--transition)}.section{max-width:var(--max-width);margin:0 auto;padding:var(--space-16) var(--space-6)}.section-title{font-size:var(--text-3xl);font-weight:700;margin-bottom:var(--space-8);position:relative}.section-title:after{content:"";display:block;width:48px;height:3px;background:var(--color-accent);margin-top:var(--space-2);border-radius:2px}.nav-header{position:sticky;top:0;z-index:100;background:var(--color-bg);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background-color var(--transition)}.nav-inner{max-width:var(--max-width);margin:0 auto;height:var(--nav-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6)}.nav-logo{font-size:var(--text-xl);font-weight:700;color:var(--color-text);letter-spacing:-.02em}.nav-logo:hover{color:var(--color-text);text-decoration:none}.nav-links{display:flex;align-items:center;gap:var(--space-8)}.nav-links a{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:500;text-transform:uppercase;letter-spacing:.05em;transition:color var(--transition)}.nav-links a:hover{color:var(--color-text);text-decoration:none}.theme-toggle{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);font-size:var(--text-lg);line-height:1;transition:border-color var(--transition)}.theme-toggle:hover{border-color:var(--color-accent)}.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:var(--space-2)}.hamburger-line{display:block;width:24px;height:2px;background:var(--color-text);transition:transform var(--transition),opacity var(--transition)}.hamburger.is-active .hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.is-active .hamburger-line:nth-child(2){opacity:0}.hamburger.is-active .hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:calc(80vh - var(--nav-height));padding-top:var(--space-20);padding-bottom:var(--space-20);animation:fadeInUp .8s ease-out both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.hero-name{font-size:var(--text-4xl);font-weight:700;letter-spacing:-.03em;margin-bottom:var(--space-3)}.hero-subtitle{font-size:var(--text-lg);color:var(--color-text-muted);max-width:480px;margin-bottom:var(--space-8)}.hero-links{display:flex;gap:var(--space-6)}.hero-icon{color:var(--color-text-muted);transition:color var(--transition),transform var(--transition)}.hero-icon:hover{color:var(--color-accent);transform:translateY(-2px);text-decoration:none}.hero-icon svg{width:28px;height:28px}.resume-download{display:inline-block;font-size:var(--text-sm);font-weight:500;color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);margin-bottom:var(--space-8);transition:background-color var(--transition),color var(--transition)}.resume-download:hover{background-color:var(--color-accent);color:#fff;text-decoration:none}.resume-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}.resume-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition)}.resume-card:hover{box-shadow:var(--shadow-md)}.resume-card-title{font-size:var(--text-xl);font-weight:600;margin-bottom:var(--space-6);color:var(--color-accent)}.experience-list{display:flex;flex-direction:column;gap:var(--space-6)}.experience-item{padding-left:var(--space-4);border-left:2px solid var(--color-border)}.experience-company{font-weight:600;font-size:var(--text-base);margin-bottom:var(--space-1)}.experience-role{font-size:var(--text-sm);color:var(--color-text);margin-bottom:var(--space-1)}.experience-date{font-size:var(--text-xs);color:var(--color-text-muted)}.education-entry{padding-left:var(--space-4);border-left:2px solid var(--color-border)}.skills-list{display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--text-sm)}.skill-category{display:inline-block;font-weight:600;min-width:110px;color:var(--color-accent)}.projects-grid{display:grid;grid-template-columns:1fr;gap:var(--space-8)}.project-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition)}.project-card:hover{box-shadow:var(--shadow-md)}.project-card-title{font-size:var(--text-xl);font-weight:600;margin-bottom:var(--space-2)}.project-tag{display:inline-block;font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);margin-bottom:var(--space-4)}.project-description{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.7;margin-bottom:var(--space-6);max-width:65ch}.project-link{display:inline-block;font-size:var(--text-sm);font-weight:500;margin-bottom:var(--space-4)}.video-wrapper{position:relative;width:100%;max-width:640px;aspect-ratio:16 / 9;border-radius:var(--radius-md);overflow:hidden;background:#000}.video-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.site-footer{text-align:center;padding:var(--space-8) var(--space-6);color:var(--color-text-muted);font-size:var(--text-sm);border-top:1px solid var(--color-border)}@media (max-width: 768px){.hamburger{display:flex}.nav-links{position:fixed;top:var(--nav-height);left:0;right:0;flex-direction:column;background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:var(--space-6);gap:var(--space-6);transform:translateY(-120%);transition:transform .3s ease;z-index:99}.nav-links.is-open{transform:translateY(0)}.resume-grid{grid-template-columns:1fr}}@media (max-width: 480px){.section{padding:var(--space-8) var(--space-4)}.hero{min-height:calc(60vh - var(--nav-height));padding-top:var(--space-12);padding-bottom:var(--space-12)}.hero-name{font-size:var(--text-3xl)}.hero-subtitle{font-size:var(--text-base)}.section-title{font-size:var(--text-2xl)}.resume-card{padding:var(--space-4)}.project-card{padding:var(--space-6)}.skill-category{min-width:unset;display:block;margin-bottom:var(--space-1)}}.photography-section{background-color:var(--color-bg-alt);transition:background-color var(--transition)}.masonry-grid{column-count:3;column-gap:var(--space-4)}.masonry-item{width:100%;margin-bottom:var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:transform var(--transition),box-shadow var(--transition);break-inside:avoid}.masonry-item:hover{transform:scale(1.02);box-shadow:var(--shadow-md)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-image{max-width:90vw;max-height:90vh;border-radius:var(--radius-md);box-shadow:0 8px 32px #0006}.lightbox-close{position:fixed;top:var(--space-6);right:var(--space-6);background:none;border:none;color:#fff;font-size:2.5rem;line-height:1;cursor:pointer;transition:transform var(--transition);z-index:1001}.lightbox-close:hover{transform:scale(1.2)}@media (max-width: 1024px){.masonry-grid{column-count:2}}@media (max-width: 480px){.masonry-grid{column-count:1}}
