@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&display=swap";:root{--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Code", monospace;--bg: #050505;--bg-subtle: #0a0a0a;--surface: rgba(255, 255, 255, .04);--surface-hover: rgba(255, 255, 255, .08);--surface-active: rgba(255, 255, 255, .12);--border: rgba(255, 255, 255, .06);--border-hover: rgba(255, 255, 255, .12);--text-primary: #f5f5f5;--text-secondary: rgba(255, 255, 255, .6);--text-tertiary: rgba(255, 255, 255, .4);--accent-red: #ff4d4d;--accent-red-soft: rgba(255, 77, 77, .12);--accent-blue: #3b82f6;--accent-blue-soft: rgba(59, 130, 246, .12);--accent-cyan: #06b6d4;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--shadow-glow-red: 0 0 60px rgba(255, 77, 77, .15);--shadow-glow-blue: 0 0 60px rgba(59, 130, 246, .15);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-quart: cubic-bezier(.25, .46, .45, .94);color-scheme:dark}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}html,body,#root{height:100%;width:100%;overflow-x:hidden}body{font-family:var(--font-sans);font-feature-settings:"cv11","ss01";background:var(--bg);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}button{font-family:inherit}::selection{background:#3b82f64d;color:#fff}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:#fff3}.world-bg{position:fixed;inset:0;z-index:-1;opacity:.25}.world-layout{min-height:100vh;display:flex;flex-direction:column}.world-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);background:#050505b3;border-bottom:1px solid var(--border)}.world-header__inner{display:flex;align-items:center;gap:var(--space-lg);padding:.75rem var(--space-xl);max-width:1200px;margin:0 auto;width:100%}.world-home-link{display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:500;font-size:.85rem;color:var(--text-tertiary);transition:color .2s;white-space:nowrap}.world-home-link:hover{color:var(--text-primary)}.world-title{display:flex;align-items:center;gap:var(--space-sm);font-size:1rem;font-weight:700;margin-right:auto;white-space:nowrap}.world-title__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.world-nav{display:flex;gap:2px}.world-nav-link{display:inline-flex;align-items:center;gap:var(--space-xs);padding:.45rem .85rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;color:var(--text-secondary);transition:all .2s var(--ease-out-expo);white-space:nowrap}.world-nav-link:hover{background:var(--surface-hover);color:var(--text-primary)}.world-nav-link--active{background:var(--surface-active);color:var(--text-primary)}.world-nav-link__icon{font-size:.9rem}.world-main{flex:1;padding:var(--space-3xl) var(--space-xl);max-width:1000px;margin:0 auto;width:100%}.world-footer{padding:var(--space-xl);text-align:center;color:var(--text-tertiary);font-size:.8rem;border-top:1px solid var(--border)}.page-loader{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg)}.page-loader__spinner{width:32px;height:32px;border:2px solid var(--border);border-top-color:var(--accent-blue);border-radius:50%;animation:spin 1s linear infinite}.page-loader__text{color:var(--text-tertiary);font-size:.85rem;letter-spacing:.05em;animation:fadeIn .4s .4s ease both}.page-transition{animation:slideUp .3s cubic-bezier(.25,.46,.45,.94) both}.card-grid,.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-md)}.card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all .35s var(--ease-out-expo);overflow:hidden}.card:hover{border-color:var(--border-hover);transform:translateY(-3px);box-shadow:var(--shadow-md)}.card-spotlight{position:relative;overflow:hidden}.card-spotlight:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(600px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),var(--spotlight-color, rgba(255, 255, 255, .06)),transparent 40%);opacity:0;transition:opacity .5s ease;pointer-events:none;z-index:1}.card-spotlight:hover:before{opacity:1}.card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.card__badge{font-size:.72rem;font-weight:700;font-family:var(--font-mono);padding:2px 10px;border-radius:var(--radius-full);background:var(--accent-red-soft);color:var(--accent-red);letter-spacing:.04em}.card__location{font-size:.75rem;color:var(--text-tertiary)}.card__title{font-size:1.1rem;font-weight:700;margin-bottom:var(--space-xs);color:var(--text-primary)}.card__distance{font-size:.85rem;color:var(--text-tertiary);margin-bottom:var(--space-md)}.card__body{font-size:.9rem;color:var(--text-secondary);line-height:1.65}.card__result{display:flex;align-items:baseline;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--border)}.card__result-time{font-size:1.5rem;font-weight:800;font-family:var(--font-mono);letter-spacing:-.02em;color:var(--text-primary)}.card__result-label{font-size:.72rem;font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.card__icon-lg{font-size:1.8rem;margin-bottom:var(--space-md);display:block}.card__skill-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.card__skill-header .card__icon-lg{margin-bottom:0;font-size:1.4rem}.card__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-md)}.tag{padding:3px 10px;border-radius:var(--radius-full);font-size:.72rem;font-weight:600;letter-spacing:.02em;background:var(--accent-red-soft);color:var(--accent-red)}.tag--blue{background:var(--accent-blue-soft);color:var(--accent-blue)}.stat-row{display:flex;gap:var(--space-md);margin-bottom:var(--space-2xl);flex-wrap:wrap}.stat-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-lg) var(--space-xl);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:140px;transition:all .3s var(--ease-out-expo)}.stat-card:hover{background:var(--surface-hover);border-color:var(--border-hover);transform:translateY(-2px)}.stat-card--blue:hover{border-color:#3b82f633;box-shadow:var(--shadow-glow-blue)}.stat-card__icon{font-size:1.5rem}.stat-card__number{font-size:1.8rem;font-weight:800;font-family:var(--font-mono);letter-spacing:-.02em}.stat-card__label{font-size:.75rem;font-weight:500;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em}.quick-links{display:flex;flex-direction:column;gap:var(--space-sm)}.quick-link-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);font-weight:500;font-size:.95rem;color:var(--text-secondary);transition:all .25s var(--ease-out-expo)}.quick-link-card:hover{background:var(--surface-hover);border-color:var(--border-hover);color:var(--text-primary);transform:translate(4px)}.quick-link-card svg{margin-left:auto;opacity:.4;transition:opacity .2s}.quick-link-card:hover svg{opacity:.8}.quick-link-card__icon{font-size:1.2rem}.quick-link-card--blue:hover{border-color:#3b82f633}.timeline{position:relative;display:flex;flex-direction:column;gap:0;padding-left:28px}.timeline:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:1px;background:linear-gradient(180deg,var(--accent-blue),var(--border))}.timeline-item{position:relative;padding:var(--space-lg) var(--space-lg);padding-left:var(--space-xl);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:var(--space-md);transition:all .3s var(--ease-out-expo)}.timeline-item:hover{background:var(--surface-hover);border-color:var(--border-hover);transform:translate(4px)}.timeline-item__dot{position:absolute;left:-28px;top:24px;width:13px;height:13px;border-radius:50%;background:var(--accent-blue);border:2px solid var(--bg);box-shadow:0 0 0 3px var(--accent-blue-soft)}.timeline-item__period{font-size:.72rem;font-weight:600;font-family:var(--font-mono);color:var(--accent-blue);letter-spacing:.04em;text-transform:uppercase}.timeline-item__role{font-size:1.1rem;font-weight:700;margin:var(--space-xs) 0;color:var(--text-primary)}.timeline-item__company{font-size:.85rem;font-weight:600;color:var(--text-tertiary);display:block;margin-bottom:var(--space-sm)}.timeline-item__desc{font-size:.9rem;color:var(--text-secondary);line-height:1.65}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-md)}.gallery-item{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);transition:all .35s var(--ease-out-expo)}.gallery-item:hover{border-color:var(--border-hover);transform:translateY(-3px);box-shadow:var(--shadow-md)}.gallery-item__img{width:100%;aspect-ratio:4 / 3}.gallery-item__caption{padding:var(--space-md);font-size:.85rem;font-weight:500;color:var(--text-secondary);background:var(--surface)}.contact-grid{display:flex;flex-direction:column;gap:var(--space-sm)}.contact-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:all .3s var(--ease-out-expo)}.contact-card:hover{background:var(--surface-hover);border-color:var(--border-hover)}.contact-card__icon{font-size:1.5rem;flex-shrink:0}.contact-card__label{display:block;font-weight:600;font-size:.95rem;color:var(--text-primary)}.contact-card__sub{display:block;font-size:.8rem;color:var(--text-tertiary);margin-top:2px}.contact-card__arrow{margin-left:auto;color:var(--text-tertiary);transition:transform .2s var(--ease-out-expo)}.contact-card:hover .contact-card__arrow{transform:translate(2px,-2px);color:var(--accent-blue)}.construction-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary);padding:var(--space-xl)}.construction-content{text-align:center;max-width:420px}.construction-icon{font-size:4rem;display:block;margin-bottom:var(--space-lg)}.construction-title{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;letter-spacing:-.02em;margin-bottom:var(--space-md);background:linear-gradient(180deg,#fff 20%,#ffffffa6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.construction-text{font-size:1.05rem;color:var(--text-secondary);line-height:1.7;margin-bottom:var(--space-xl)}.construction-link{display:inline-block;font-size:.95rem;font-weight:600;color:var(--text-primary);text-decoration:none;padding:var(--space-sm) var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-full);transition:background .2s,border-color .2s}.construction-link:hover{background:#ffffff0d;border-color:#fff3}.hero-section{padding-bottom:var(--space-2xl)}.hero-label{display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-red);margin-bottom:var(--space-lg);padding:var(--space-xs) var(--space-md);background:var(--accent-red-soft);border-radius:var(--radius-full)}.hero-label--blue{color:var(--accent-blue);background:var(--accent-blue-soft)}.hero-title{font-size:clamp(2rem,5vw,3.2rem);font-weight:800;line-height:1.1;letter-spacing:-.03em;margin-bottom:var(--space-lg);background:linear-gradient(180deg,#fff 20%,#ffffffa6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-body{font-size:1.05rem;line-height:1.75;color:var(--text-secondary);max-width:580px;margin-bottom:var(--space-2xl)}.page-title{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;letter-spacing:-.02em;margin-bottom:var(--space-sm);background:linear-gradient(180deg,#fff 20%,#ffffffb3);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.page-desc{font-size:1rem;color:var(--text-secondary);margin-bottom:var(--space-2xl);max-width:500px;line-height:1.65}.about-content{display:flex;flex-direction:column;gap:var(--space-lg);margin-bottom:var(--space-2xl)}.about-content p{font-size:1.05rem;line-height:1.8;color:var(--text-secondary);max-width:640px}.about-quote{font-size:1.15rem;font-style:italic;color:var(--text-tertiary);padding-left:var(--space-lg);border-left:3px solid var(--accent-red);max-width:500px;line-height:1.7}.split-screen{display:flex;height:100vh;height:100dvh;width:100%;position:relative}.split-screen--enter{animation:fadeIn .5s ease both}.split-side{position:relative;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;will-change:flex;transition:flex .4s cubic-bezier(.25,.46,.45,.94)}.split-side--expanded{flex:1.35}.split-side--collapsed{flex:.65}.split-content{position:relative;z-index:2;text-align:center;padding:var(--space-xl);max-width:520px;width:100%}.split-label{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--space-md);padding:var(--space-xs) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-full);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.split-headline{font-size:clamp(2.4rem,6vw,4.5rem);font-weight:900;letter-spacing:-.03em;line-height:1.15;margin-bottom:var(--space-md);padding:.1em 0;background:linear-gradient(180deg,#fff 30%,#fff9);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.split-subtitle{font-size:clamp(.95rem,1.5vw,1.15rem);color:var(--text-secondary);margin-bottom:var(--space-2xl);line-height:1.7}.split-divider{width:1px;position:relative;z-index:3}.split-divider__glow{position:absolute;inset:0;width:1px;background:linear-gradient(180deg,transparent 0%,rgba(255,255,255,.2) 30%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.2) 70%,transparent 100%)}.explore-btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:.9rem 2rem;border:1.5px solid rgba(255,255,255,.25);border-radius:var(--radius-full);background:#ffffff0f;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;letter-spacing:.02em;transition:all .3s var(--ease-out-expo)}.explore-btn svg{transition:transform .3s var(--ease-out-expo)}.explore-btn:hover svg{transform:translate(3px)}.explore-btn:hover{background:#ffffff1f;border-color:#fff6;transform:scale(1.06);box-shadow:0 0 40px #ff4d4d4d}.explore-btn:active{transform:scale(.97)}.explore-btn--pro{border-color:#3b82f659}.explore-btn--pro:hover{border-color:#3b82f699;background:#3b82f61a;box-shadow:0 0 40px #3b82f64d}.wipe-transition{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;clip-path:circle(0% at 50% 50%)}.wipe-transition--active{animation:wipeOpen 1.4s cubic-bezier(.76,0,.24,1) forwards}.wipe-transition--personal{animation-name:wipeOpenLeft}.wipe-transition--professional{animation-name:wipeOpenRight}.wipe-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.wipe-icon{font-size:3rem}.wipe-icon--enter{animation:wipeIconPop .6s .35s cubic-bezier(.34,1.56,.64,1) both}.wipe-text{font-size:clamp(1.4rem,4vw,2.2rem);font-weight:700;color:#fff;letter-spacing:-.01em}.wipe-text--enter{animation:fadeSlideUp .6s .6s cubic-bezier(.25,.46,.45,.94) both}.wipe-bar{width:60px;height:3px;border-radius:var(--radius-full);background:#fff6;transform-origin:left}.wipe-bar--enter{animation:scaleXGrow 1s .9s cubic-bezier(.25,.46,.45,.94) both}.anim-headline{animation:headlineReveal .7s cubic-bezier(.25,.46,.45,.94) both}.anim-subtitle{animation:fadeSlideUp .6s .15s cubic-bezier(.25,.46,.45,.94) both}.anim-button{animation:buttonReveal .5s .3s cubic-bezier(.25,.46,.45,.94) both}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(8px)}to{transform:translateY(0)}}@keyframes headlineReveal{0%{opacity:0;transform:translateY(40px);filter:blur(8px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes buttonReveal{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes wipeOpenLeft{0%{clip-path:circle(0% at 25% 50%)}to{clip-path:circle(150% at 50% 50%)}}@keyframes wipeOpenRight{0%{clip-path:circle(0% at 75% 50%)}to{clip-path:circle(150% at 50% 50%)}}@keyframes wipeIconPop{0%{transform:scale(0) rotate(-180deg)}to{transform:scale(1) rotate(0)}}@keyframes scaleXGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media(max-width:768px){.split-screen{flex-direction:column}.split-divider{width:100%;height:1px}.split-divider__glow{width:100%;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.25) 50%,transparent 100%)}.split-headline{font-size:clamp(2rem,8vw,3rem)}.world-header__inner{flex-wrap:wrap;padding:.6rem var(--space-md);gap:var(--space-sm)}.world-nav{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:none}.world-nav::-webkit-scrollbar{display:none}.world-main{padding:var(--space-xl) var(--space-md)}.stat-row{flex-direction:column}.stat-card{flex-direction:row;min-width:0;gap:var(--space-md);padding:var(--space-md) var(--space-lg)}.stat-card__number{font-size:1.4rem}.card-grid,.skills-grid,.gallery-grid{grid-template-columns:1fr}.timeline{padding-left:20px}.timeline-item__dot{left:-21px;width:11px;height:11px}}@media(max-width:480px){.explore-btn{padding:.75rem 1.5rem;font-size:.875rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}
