:root{--color-bg-primary: #fafafa;--color-bg-secondary: #ffffff;--color-bg-tertiary: #f4f4f5;--color-text-primary: #1a1a1a;--color-text-secondary: #666666;--color-text-tertiary: #999999;--color-accent: #268F57;--color-accent-hover: #1e6a43;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-project-1: #EB3132;--color-project-2: #515BE5;--color-project-3: #F5CD4D;--color-bg-primary-dark: #0a0a0a;--color-bg-secondary-dark: #1a1a1a;--color-bg-tertiary-dark: #262626;--color-text-primary-dark: #ffffff;--color-text-secondary-dark: #a1a1aa;--color-text-tertiary-dark: #71717a;--color-accent-dark: #818cf8;--color-accent-hover-dark: #a5b4fc;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--space-5xl: 8rem;--font-family-sans: "Inter", system-ui, -apple-system, sans-serif;--font-family-mono: "JetBrains Mono", "Consolas", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-6xl: 3.75rem;--font-size-7xl: 4.5rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--border-radius-sm: .25rem;--border-radius-md: .375rem;--border-radius-lg: .5rem;--border-radius-xl: .75rem;--border-radius-2xl: 1rem;--border-radius-full: 9999px;--border-width: 1px;--border-width-2: 2px;--border-width-4: 4px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .25);--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 900;--z-modal-backdrop: 1040;--z-modal: 1100;--z-popover: 1060;--z-tooltip: 1000;--z-toast: 1080;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .5s;--ease-linear: linear;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-back: cubic-bezier(.175, .885, .32, 1.275);--ease-elastic: cubic-bezier(.68, -.55, .265, 1.55);--container-max-width: 1200px;--container-padding: var(--space-lg);--glass-bg: rgba(255, 255, 255, .1);--glass-border: rgba(255, 255, 255, .2);--glass-backdrop: blur(10px);--gradient-primary: linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-hover) 100%);--gradient-text: linear-gradient(135deg, var(--color-accent) 0%, #a855f7 100%);--gradient-bg: linear-gradient(135deg, var(--color-bg-primary) 0%, var(--color-bg-tertiary) 100%)}@media (max-width: 768px){:root{--font-size-5xl: 2.25rem;--font-size-6xl: 2.75rem;--font-size-7xl: 3.25rem;--container-padding: var(--space-md)}}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html,body{height:100%}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11";overflow-x:hidden}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}button{border:none;background:none;cursor:pointer}a{color:inherit;text-decoration:none}ul,ol{list-style:none}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.container{width:100%;max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding)}.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}.nav{position:fixed;top:0;left:0;width:100%;background:var(--glass-bg);backdrop-filter:var(--glass-backdrop);border-bottom:var(--border-width) solid var(--glass-border);z-index:var(--z-fixed);padding:var(--space-md) 0;display:flex;align-items:center;justify-content:space-between;padding-left:var(--container-padding);padding-right:var(--container-padding);transition:all var(--duration-normal) var(--ease-out)}.nav-brand{display:flex;align-items:center}.nav-logo{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-accent);text-decoration:none;font-family:var(--font-family-mono)}.nav-links{display:flex;align-items:center;gap:var(--space-xl)}.nav-link{position:relative;color:var(--color-text-secondary);text-decoration:none;font-weight:var(--font-weight-medium);transition:color var(--duration-normal) var(--ease-out)}.nav-link:hover{color:var(--color-text-primary)}.nav-link:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:2px;background:var(--color-accent);transition:width var(--duration-normal) var(--ease-out)}.nav-link:hover:after{width:100%}.nav-theme{display:flex;align-items:center}.theme-toggle{position:relative;width:48px;height:24px;background:var(--color-bg-tertiary);border-radius:var(--border-radius-full);border:none;cursor:pointer;transition:background var(--duration-normal) var(--ease-out)}.theme-toggle:hover{background:var(--color-accent)}.theme-icon{position:absolute;top:50%;transform:translateY(-50%);transition:all var(--duration-normal) var(--ease-out)}.theme-icon--light{left:4px;opacity:1}.theme-icon--dark{right:4px;opacity:0}[data-theme=dark] .theme-icon--light{opacity:0}[data-theme=dark] .theme-icon--dark{opacity:1}.loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--color-bg-primary);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.loading-screen img{max-width:200px;max-height:200px;transform:scale(3)}.main{padding-top:80px}.footer{background:var(--color-bg-secondary);border-top:var(--border-width) solid var(--color-bg-tertiary);padding:var(--space-2xl) 0;margin-top:var(--space-5xl)}.footer-content{display:flex;align-items:center;justify-content:space-between;max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding)}.footer-links{display:flex;gap:var(--space-lg)}.footer-links a{color:var(--color-text-secondary);text-decoration:none;font-weight:var(--font-weight-medium);transition:color var(--duration-normal) var(--ease-out)}.footer-links a:hover{color:var(--color-accent)}@media (max-width: 768px){.nav-links{gap:var(--space-md)}.nav-link{font-size:var(--font-size-sm)}.footer-content{flex-direction:column;gap:var(--space-lg);text-align:center}.footer-links{gap:var(--space-md)}}.text-gradient{background:var(--gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border-radius:var(--border-radius-lg);font-weight:var(--font-weight-medium);text-decoration:none;transition:all var(--duration-normal) var(--ease-out);cursor:pointer;border:var(--border-width-2) solid transparent;position:relative;overflow:hidden}.btn--primary{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-md)}.btn--primary:hover{background:var(--color-accent-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.btn--secondary{background:var(--color-bg-secondary);color:var(--color-text-primary);border-color:var(--color-bg-tertiary)}.btn--secondary:hover{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-2px)}.btn--outline{background:transparent;color:var(--color-accent);border-color:var(--color-accent)}.btn--outline:hover{background:var(--color-accent);color:#fff;transform:translateY(-2px)}.btn--large{padding:var(--space-lg) var(--space-2xl);font-size:var(--font-size-lg)}.btn-arrow{transition:transform var(--duration-normal) var(--ease-out)}.btn:hover .btn-arrow{transform:translate(4px)}.section-title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-2xl);position:relative}.section-title:after{content:attr(data-text);position:absolute;top:0;left:0;background:var(--gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:.1;transform:translate(4px,4px);z-index:-1}.hero{min-height:100vh;display:flex;align-items:center;position:relative;background:var(--gradient-bg);overflow:hidden}.hero-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4xl);align-items:center;width:100%;max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding);z-index:2}.hero-title{font-size:var(--font-size-6xl);font-weight:var(--font-weight-bold);line-height:1.4;margin-bottom:var(--space-lg)}.hero-name{color:var(--color-accent);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-md)}.hero-line{display:block;overflow:hidden;padding-bottom:.1em}.hero-word{display:inline-block;position:relative;transform:translateZ(0)}.hero-subtitle{font-size:var(--font-size-xl);color:var(--color-text-secondary);margin-bottom:var(--space-2xl);line-height:var(--line-height-relaxed)}.hero-cta{display:flex;gap:var(--space-lg);align-items:center}.hero-visual{display:flex;align-items:center;justify-content:center;position:relative;height:500px}.hero-visual img{transform:scale(3)}.hero-particles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.about{padding:var(--space-5xl) 0;background:var(--color-bg-secondary)}.about-content{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--space-4xl);align-items:start}.about-description{margin-bottom:var(--space-2xl)}.about-description p{margin-bottom:var(--space-lg);font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);text-align:justify}.about-skills{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-lg)}.skill-category h3{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-md);color:var(--color-accent)}.skill-category ul{list-style:none}.skill-category li{padding:var(--space-xs) 0;color:var(--color-text-secondary);border-bottom:1px solid var(--color-bg-tertiary)}.about-visual{display:flex;justify-content:center}.about-image{position:relative;border-radius:var(--border-radius-2xl);overflow:hidden;box-shadow:var(--shadow-xl)}.profile-img{width:100%;height:auto;display:block}.image-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--gradient-primary);opacity:0;transition:opacity var(--duration-normal) var(--ease-out)}.about-image:hover .image-overlay{opacity:.1}.projects-preview{padding:var(--space-5xl) 0}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:var(--space-2xl);margin-bottom:var(--space-3xl)}.project-card-link{text-decoration:none;color:inherit}.project-card{position:relative;border-radius:var(--border-radius-xl);overflow:hidden;box-shadow:var(--shadow-lg);transition:all var(--duration-normal) var(--ease-out);color:#fff;display:flex;align-items:center;min-height:350px}.project-card-link:nth-child(1) .project-card{background-color:var(--color-project-1)}.project-card-link:nth-child(2) .project-card{background-color:var(--color-project-2)}.project-card-link:nth-child(3) .project-card{background-color:var(--color-project-3)}.project-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-xl);transition:all var(--duration-normal) var(--ease-out)}.project-card:hover .project-img{opacity:.1}.project-content{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-xl);position:absolute;inset:0}.project-image{position:relative;aspect-ratio:16/10;overflow:hidden;object-fit:cover;transition:transform var(--duration-slow) var(--ease-out)}.project-img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-out)}.project-overlay{position:absolute;bottom:0;left:0;right:0;padding:var(--space-lg);opacity:1;background:transparent}.project-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm);width:100%}.project-description{margin-bottom:var(--space-md);opacity:.9}.project-tech{display:flex;gap:var(--space-sm);flex-wrap:wrap}.tech-tag{padding:var(--space-xs) var(--space-sm);background:#fff3;border-radius:var(--border-radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.projects-cta{text-align:center}.contact-cta{padding:var(--space-5xl) 0;background:var(--gradient-bg);text-align:center}.cta-content{max-width:600px;margin:0 auto}.cta-title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-lg);line-height:var(--line-height-tight)}.cta-description{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-bottom:var(--space-2xl);line-height:var(--line-height-relaxed)}@media (max-width: 1024px){.hero-content{grid-template-columns:1fr;gap:var(--space-2xl);text-align:center}.about-content{grid-template-columns:1fr;gap:var(--space-2xl)}.about-skills{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.hero-title{font-size:var(--font-size-5xl)}.about-skills,.projects-grid{grid-template-columns:1fr}.section-title,.cta-title{font-size:var(--font-size-3xl)}}.publications-section,.timeline-section{margin-bottom:var(--space-4xl)}.publication-item{background:var(--color-bg-secondary);padding:var(--space-lg);border-radius:var(--border-radius-lg);margin-bottom:var(--space-lg);border:1px solid var(--color-bg-tertiary)}.publication-reference{margin-bottom:var(--space-md);line-height:var(--line-height-relaxed)}.publication-links .btn{margin-right:var(--space-md)}.timeline{position:relative;width:100%;max-width:800px;margin:0 auto}.timeline:after{content:"";position:absolute;width:3px;background-color:var(--color-accent);top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-item{position:relative;width:50%}.timeline-item:nth-child(odd){left:0;padding-right:3rem;text-align:right}.timeline-item:nth-child(2n){left:50%;padding-left:3rem}.timeline-item:after{content:"";position:absolute;width:1rem;height:1rem;border-radius:50%;background:var(--color-accent);border:4px solid var(--color-bg-primary);top:50%;transform:translateY(-50%);z-index:1}.timeline-item:nth-child(odd):after{right:0;transform:translate(50%,-50%)}.timeline-item:nth-child(2n):after{left:0;transform:translate(-50%,-50%)}.timeline-body{padding:var(--space-lg) 0;display:flex;align-items:center;gap:var(--space-lg)}.timeline-item:nth-child(odd) .timeline-body{flex-direction:row-reverse}.timeline-logo img{width:120px;height:auto;object-fit:contain;border-radius:var(--border-radius-md)}.timeline-logo .asb-logo{width:150px}.timeline-content h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-xs)}.page-title{font-size:var(--font-size-5xl);font-weight:var(--font-weight-bold);color:var(--color-accent);margin-bottom:var(--space-3xl)}.project-page-container .section-title{font-size:var(--font-size-3xl);color:var(--color-accent)}.project-summaries{display:flex;flex-direction:column;gap:var(--space-4xl)}.project-summary-item{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2xl);align-items:center}.project-summary-item:nth-child(2n) .project-summary-image{order:2}.project-summary-image img{width:100%;height:auto}.project-summary-image img[src*="npoint-05.png"]{width:65%;height:auto;display:block;margin:0 auto}.project-summary-image img[src*="myoassist.png"]{width:70%;height:auto;display:block;margin:0 auto}.project-summary-title{color:var(--color-accent);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-md)}.project-summary-description{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);text-align:justify}.theme-yellow{--color-accent: #F5CD4D}.theme-red{--color-accent: #EB3132}.theme-blue{--color-accent: #515BE5}.project-section .project-page-container{padding-top:var(--space-4xl);padding-bottom:var(--space-4xl)}
