#root{width:100%;margin:0;display:block;text-align:left}.sidebar{position:fixed;right:1.25rem;top:50%;transform:translateY(-50%);z-index:1000;display:flex;flex-direction:column;align-items:center;gap:.6rem}.sidebar-nav{display:flex;flex-direction:column;gap:.2rem;background:#0f0f23b3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:14px;padding:.45rem}.sidebar-item{position:relative;width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:10px;cursor:pointer;color:var(--text-muted);transition:color .2s;outline:none}.sidebar-item:hover{color:var(--text-primary)}.sidebar-item.active{color:var(--accent)}.sidebar-indicator{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;background:var(--accent-light);border:1px solid var(--accent-border);z-index:0}.sidebar-icon{position:relative;z-index:1;font-size:.85rem;line-height:1;display:flex;align-items:center;justify-content:center}.sidebar-label{position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);white-space:nowrap;background:#0f0f23eb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:6px;padding:.28rem .6rem;font-size:.74rem;font-weight:500;color:var(--text-primary);pointer-events:none;z-index:10;box-shadow:0 4px 16px #0006}.sidebar-lang{width:38px;height:28px;border-radius:8px;background:#0f0f23b3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);color:var(--text-muted);font-size:.65rem;font-weight:700;letter-spacing:.06em;cursor:pointer;transition:border-color .2s,color .2s;display:flex;align-items:center;justify-content:center}.sidebar-lang:hover{border-color:var(--accent-border);color:var(--accent)}.sidebar-mobile-label{display:none}@media (max-width: 768px){.sidebar{right:0;left:0;top:0;bottom:auto;transform:none;width:100%;flex-direction:row;align-items:stretch;gap:0;border-radius:0;padding:0}.sidebar-nav{flex:1;flex-direction:row;justify-content:space-around;align-items:center;border-radius:0;border:none;border-bottom:1px solid var(--border);padding:.4rem .25rem;gap:0}.sidebar-item{flex-direction:row;width:auto;height:36px;padding:0 .6rem;border-radius:8px}.sidebar-icon{font-size:1rem}.sidebar-mobile-label{display:none}.sidebar-label{display:none!important}.sidebar-lang{align-self:center;margin:0 .5rem;height:36px;border-radius:0;border:none;border-bottom:1px solid var(--border);border-left:1px solid var(--border);background:transparent;padding:0 .75rem;width:auto}}.fps-viewport{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;perspective:1100px;perspective-origin:50% 50%}.fps-page{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;background-color:#0a0a0a;backface-visibility:hidden;transform-origin:center center;transition:transform .87s cubic-bezier(.77,0,.175,1),opacity .7s ease;will-change:transform,opacity}.fps-above{transform:translateY(-100%) rotateX(50deg);opacity:0;pointer-events:none}.fps-current{transform:translateY(0) rotateX(0);opacity:1;pointer-events:auto;z-index:1}.fps-below{transform:translateY(100%) rotateX(-50deg);opacity:0;pointer-events:none}.ghost-cursor{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.ghost-cursor>canvas{display:block;width:100%;height:100%;background:transparent}.logoloop{position:relative;--logoloop-gap: 32px;--logoloop-logoHeight: 28px;--logoloop-fadeColorAuto: #ffffff}.logoloop--vertical{height:100%;display:inline-block}.logoloop--scale-hover{padding-top:calc(var(--logoloop-logoHeight) * .1);padding-bottom:calc(var(--logoloop-logoHeight) * .1)}@media (prefers-color-scheme: dark){.logoloop{--logoloop-fadeColorAuto: #0b0b0b}}.logoloop__track{display:flex;width:max-content;will-change:transform;-webkit-user-select:none;user-select:none;position:relative;z-index:0}.logoloop--vertical .logoloop__track{flex-direction:column;height:max-content;width:100%}.logoloop__list{display:flex;align-items:center}.logoloop--vertical .logoloop__list{flex-direction:column}.logoloop__item{flex:0 0 auto;margin-right:var(--logoloop-gap);font-size:var(--logoloop-logoHeight);line-height:1}.logoloop--vertical .logoloop__item{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__item:last-child{margin-right:var(--logoloop-gap)}.logoloop--vertical .logoloop__item:last-child{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__node{display:inline-flex;align-items:center}.logoloop__item img{height:var(--logoloop-logoHeight);width:auto;display:block;object-fit:contain;image-rendering:-webkit-optimize-contrast;-webkit-user-drag:none;pointer-events:none;transition:transform .3s cubic-bezier(.4,0,.2,1)}.logoloop--scale-hover .logoloop__item{overflow:visible}.logoloop--scale-hover .logoloop__item:hover img,.logoloop--scale-hover .logoloop__item:hover .logoloop__node{transform:scale(1.2);transform-origin:center center}.logoloop--scale-hover .logoloop__node{transition:transform .3s cubic-bezier(.4,0,.2,1)}.logoloop__link{display:inline-flex;align-items:center;text-decoration:none;border-radius:4px;transition:opacity .2s ease}.logoloop__link:hover{opacity:.8}.logoloop__link:focus-visible{outline:2px solid currentColor;outline-offset:2px}.logoloop--fade:before,.logoloop--fade:after{content:"";position:absolute;top:0;bottom:0;width:clamp(24px,8%,120px);pointer-events:none;z-index:10}.logoloop--fade:before{left:0;background:linear-gradient(to right,var(--logoloop-fadeColor, var(--logoloop-fadeColorAuto)) 0%,rgba(0,0,0,0) 100%)}.logoloop--fade:after{right:0;background:linear-gradient(to left,var(--logoloop-fadeColor, var(--logoloop-fadeColorAuto)) 0%,rgba(0,0,0,0) 100%)}.logoloop--vertical.logoloop--fade:before,.logoloop--vertical.logoloop--fade:after{left:0;right:0;width:100%;height:clamp(24px,8%,120px)}.logoloop--vertical.logoloop--fade:before{top:0;bottom:auto;background:linear-gradient(to bottom,var(--logoloop-fadeColor, var(--logoloop-fadeColorAuto)) 0%,rgba(0,0,0,0) 100%)}.logoloop--vertical.logoloop--fade:after{bottom:0;top:auto;background:linear-gradient(to top,var(--logoloop-fadeColor, var(--logoloop-fadeColorAuto)) 0%,rgba(0,0,0,0) 100%)}@media (prefers-reduced-motion: reduce){.logoloop__track{transform:translateZ(0)!important}.logoloop__item img,.logoloop__node{transition:none!important}}.hero{min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden;padding:7rem 0 5rem}.hero-orb{position:absolute;border-radius:50%;filter:blur(90px);pointer-events:none}.hero-orb-1{width:600px;height:600px;background:radial-gradient(circle,rgba(124,58,237,.18) 0%,transparent 65%);top:-200px;right:-150px}.hero-orb-2{width:450px;height:450px;background:radial-gradient(circle,rgba(124,58,237,.1) 0%,transparent 65%);bottom:-100px;left:-150px}.hero-content{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4rem;position:relative;z-index:1}.hero-text{max-width:580px}.hero-greeting{color:var(--accent);font-size:.9rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;margin-bottom:.85rem}.hero-name{font-size:clamp(2.6rem,5.5vw,4.2rem);font-weight:900;letter-spacing:-.04em;line-height:1.05;margin-bottom:.85rem}.hero-role{font-size:clamp(1rem,2vw,1.25rem);font-weight:500;margin-bottom:1.25rem;color:var(--text-secondary)}.hero-role .accent-text{font-weight:600}.hero-separator{opacity:.35;margin:0 .2rem}.hero-description{color:var(--text-secondary);font-size:1rem;line-height:1.75;max-width:460px;margin-bottom:2.5rem}.hero-actions{display:flex;gap:1rem;flex-wrap:wrap}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;background:var(--accent);color:#fff;padding:.85rem 1.85rem;border-radius:var(--radius);font-size:.92rem;font-weight:600;transition:background var(--transition),transform var(--transition),box-shadow var(--transition);box-shadow:0 4px 20px #7c3aed61}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 8px 30px #7c3aed80}.btn-secondary{display:inline-flex;align-items:center;gap:.5rem;background:var(--accent-light);color:var(--accent);padding:.85rem 1.85rem;border-radius:var(--radius);font-size:.92rem;font-weight:600;border:1px solid var(--accent-border);transition:background var(--transition),transform var(--transition),box-shadow var(--transition)}.btn-secondary:hover{background:var(--accent);color:#fff;transform:translateY(-2px);box-shadow:0 4px 20px #7c3aed61}.btn-outline{display:inline-flex;align-items:center;background:transparent;color:var(--text-primary);padding:.85rem 1.85rem;border-radius:var(--radius);font-size:.92rem;font-weight:600;border:1px solid var(--border);transition:border-color var(--transition),background var(--transition),transform var(--transition)}.btn-outline:hover{border-color:var(--accent-border);background:var(--accent-light);transform:translateY(-2px)}.hero-image{flex-shrink:0}.hero-image-wrapper{width:270px;height:270px;border-radius:50%;overflow:hidden;border:2px solid var(--accent-border);box-shadow:0 0 50px #7c3aed40,0 0 100px #7c3aed1a}.hero-image-wrapper img{width:100%;height:100%;object-fit:cover;object-position:top center}.hero-ghost-cursor{z-index:0}.hero-bg-langs{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.hero-lang-chip{position:absolute;font-size:.7rem;font-weight:600;letter-spacing:.04em;color:#fff;background:#0a0a0a;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:.2rem .55rem;opacity:0;transition:opacity .18s ease;animation:chipFloat 6s ease-in-out infinite;white-space:nowrap}.hero-lang-chip:nth-child(2){animation-delay:-1.2s}.hero-lang-chip:nth-child(3){animation-delay:-2.4s}.hero-lang-chip:nth-child(4){animation-delay:-3.6s}.hero-lang-chip:nth-child(5){animation-delay:-.8s}.hero-lang-chip:nth-child(6){animation-delay:-4s}.hero-lang-chip:nth-child(7){animation-delay:-1.8s}.hero-lang-chip:nth-child(8){animation-delay:-2.9s}.hero-lang-chip:nth-child(9){animation-delay:-.4s}.hero-lang-chip:nth-child(10){animation-delay:-3.1s}.hero-lang-chip:nth-child(11){animation-delay:-5s}.hero-lang-chip:nth-child(12){animation-delay:-1.5s}.hero-lang-chip:nth-child(13){animation-delay:-2.2s}.hero-lang-chip:nth-child(14){animation-delay:-4.5s}@keyframes chipFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.hero-mobile-langs{display:none;width:100%;padding:1.5rem 0 .5rem}.hero-lang-badge{font-size:.78rem;font-weight:600;color:var(--accent);background:var(--accent-light);border:1px solid var(--accent-border);border-radius:6px;padding:.22rem .65rem;white-space:nowrap}.hero-scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);width:26px;height:42px;background:none;border:2px solid var(--border);border-radius:13px;display:flex;justify-content:center;padding-top:7px;transition:border-color var(--transition)}.hero-scroll-hint:hover{border-color:var(--accent-border)}.hero-scroll-hint span{width:4px;height:8px;background:var(--accent);border-radius:2px;animation:scrollDown 1.8s ease infinite}@keyframes scrollDown{0%{opacity:1;transform:translateY(0)}80%{opacity:0;transform:translateY(10px)}to{opacity:0;transform:translateY(0)}}@media (max-width: 900px){.hero-content{grid-template-columns:1fr;text-align:center;gap:2.5rem}.hero-text{max-width:100%;order:2}.hero-description{max-width:100%;margin-left:auto;margin-right:auto}.hero-actions{justify-content:center}.hero-image{order:1;display:flex;justify-content:center}.hero-image-wrapper{width:200px;height:200px}.hero-ghost-cursor,.hero-bg-langs{display:none}.hero-mobile-langs{display:block}}@media (max-width: 480px){.hero-actions{flex-direction:column;align-items:center}.btn-primary,.btn-secondary,.btn-outline{width:100%;justify-content:center}}.rt-container{display:inline-block;position:relative;overflow:hidden;vertical-align:bottom;perspective:500px}.rt-sizer{display:inline-block;visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap}.rt-word{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;white-space:nowrap;transform-origin:center center}@keyframes rt-exit-up{0%{transform:translateY(0) rotateX(0);opacity:1}to{transform:translateY(-110%) rotateX(40deg);opacity:0}}@keyframes rt-enter-up{0%{transform:translateY(110%) rotateX(-40deg);opacity:0}to{transform:translateY(0) rotateX(0);opacity:1}}@keyframes rt-exit-right{0%{transform:translate(0) rotateY(0);opacity:1}to{transform:translate(110%) rotateY(-40deg);opacity:0}}@keyframes rt-enter-right{0%{transform:translate(-110%) rotateY(40deg);opacity:0}to{transform:translate(0) rotateY(0);opacity:1}}@keyframes rt-exit-down{0%{transform:translateY(0) rotateX(0);opacity:1}to{transform:translateY(110%) rotateX(-40deg);opacity:0}}@keyframes rt-enter-down{0%{transform:translateY(-110%) rotateX(40deg);opacity:0}to{transform:translateY(0) rotateX(0);opacity:1}}@keyframes rt-exit-left{0%{transform:translate(0) rotateY(0);opacity:1}to{transform:translate(-110%) rotateY(40deg);opacity:0}}@keyframes rt-enter-left{0%{transform:translate(110%) rotateY(-40deg);opacity:0}to{transform:translate(0) rotateY(0);opacity:1}}.rt-exit-up{animation:rt-exit-up .48s cubic-bezier(.4,0,1,1) forwards}.rt-enter-up{animation:rt-enter-up .48s cubic-bezier(0,0,.2,1) forwards}.rt-exit-right{animation:rt-exit-right .48s cubic-bezier(.4,0,1,1) forwards}.rt-enter-right{animation:rt-enter-right .48s cubic-bezier(0,0,.2,1) forwards}.rt-exit-down{animation:rt-exit-down .48s cubic-bezier(.4,0,1,1) forwards}.rt-enter-down{animation:rt-enter-down .48s cubic-bezier(0,0,.2,1) forwards}.rt-exit-left{animation:rt-exit-left .48s cubic-bezier(.4,0,1,1) forwards}.rt-enter-left{animation:rt-enter-left .48s cubic-bezier(0,0,.2,1) forwards}.about{background:var(--bg-secondary)}.about-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.75rem 3.5rem;max-width:780px;margin:0 auto}.about-bio{color:var(--text-secondary);font-size:1.05rem;line-height:1.85;text-align:center;margin-bottom:2.5rem}.about-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;border-top:1px solid var(--border);padding-top:2rem}.stat-item{display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center}.stat-value{font-size:2.4rem;font-weight:900;letter-spacing:-.04em;line-height:1}.stat-label{color:var(--text-muted);font-size:.82rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em}@media (max-width: 640px){.about-card{padding:2rem 1.5rem}.about-stats{grid-template-columns:1fr;gap:0}.stat-item{padding:1rem 0;border-bottom:1px solid var(--border)}.stat-item:last-child{border-bottom:none}}.timeline-section{background:var(--bg-primary);display:flex;flex-direction:column;height:100vh;padding:0;overflow:hidden}.tl-header{padding-top:5rem;padding-bottom:1rem;flex-shrink:0;display:flex;align-items:baseline;gap:1.5rem}.tl-hint{color:var(--text-muted);font-size:.8rem;display:flex;align-items:center;gap:.4rem;-webkit-user-select:none;user-select:none}.tl-hint-arrow{animation:hintBounce 1.6s ease-in-out infinite}@keyframes hintBounce{0%,to{transform:translate(0)}40%{transform:translate(5px)}60%{transform:translate(-5px)}}.tl-scroll{flex:1;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;cursor:grab}.tl-scroll::-webkit-scrollbar{display:none}.tl-scroll:active{cursor:grabbing}.tl-track{display:flex;align-items:center;height:100%;min-width:max-content;padding:0 12vw;position:relative}.tl-track:before{content:"";position:absolute;top:50%;left:0;right:0;height:2px;transform:translateY(-50%);background:linear-gradient(to right,transparent 2%,var(--accent) 8%,rgba(124,58,237,.25) 92%,transparent 98%);pointer-events:none}.tl-cap{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px #7c3aedb3;flex-shrink:0;z-index:1}.tl-item{position:relative;width:300px;height:100%;flex-shrink:0}.tl-dot{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:36px;height:36px;border-radius:50%;background:var(--bg-secondary);border:2px solid var(--accent);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:.7rem;box-shadow:0 0 16px #7c3aed66;z-index:2}.tl-dot.education{background:var(--accent-light)}.tl-connector{position:absolute;left:calc(50% - 1px);width:2px;height:44px;z-index:1}.tl-item.tl-above .tl-connector{bottom:calc(50% + 16px);background:linear-gradient(to top,var(--accent),rgba(124,58,237,.25))}.tl-item.tl-below .tl-connector{top:calc(50% + 16px);background:linear-gradient(to bottom,var(--accent),rgba(124,58,237,.25))}.tl-card{position:absolute;left:50%;transform:translate(-50%);width:400px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;transition:border-color var(--transition),box-shadow var(--transition)}.tl-card:hover{border-color:var(--accent-border);box-shadow:var(--shadow-accent)}.tl-item.tl-above .tl-card{bottom:calc(50% + 64px)}.tl-item.tl-below .tl-card{top:calc(50% + 64px)}.tl-period{display:inline-block;color:var(--accent);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.45rem;background:var(--accent-light);border:1px solid var(--accent-border);padding:.1rem .5rem;border-radius:6px}.tl-role{font-size:.97rem;font-weight:700;color:var(--text-primary);margin-bottom:.2rem;line-height:1.3}.tl-company{color:var(--accent);font-size:.82rem;font-weight:500;margin-bottom:.6rem}.tl-description{color:var(--text-secondary);font-size:.8rem;line-height:1.65}.tl-progress-track{height:2px;background:#ffffff0d;flex-shrink:0}.tl-progress-fill{height:100%;width:0%;background:var(--accent);transition:width .08s linear;box-shadow:0 0 8px #7c3aed80}@media (max-width: 768px){.timeline-section{height:auto;min-height:100vh;overflow:visible;padding:6rem 0 3rem}.tl-header{padding-top:0;flex-direction:column;gap:.25rem}.tl-hint{display:none}.tl-scroll{overflow-x:visible;overflow-y:visible;cursor:default;flex:none}.tl-track{flex-direction:column;align-items:flex-start;min-width:unset;padding:0 1rem 0 3.5rem;height:auto;width:100%;max-width:640px;margin:0 auto}.tl-track:before{top:0;bottom:0;left:1.85rem;right:auto;width:2px;height:auto;background:linear-gradient(to bottom,var(--accent),rgba(124,58,237,.15));transform:none}.tl-cap{display:none}.tl-item,.tl-item.tl-above,.tl-item.tl-below{position:relative;width:100%;height:auto;margin-bottom:2rem}.tl-dot{position:absolute;left:-2.55rem;top:0;transform:none}.tl-connector{display:none}.tl-card,.tl-item.tl-above .tl-card,.tl-item.tl-below .tl-card{position:static;transform:none;width:100%;left:auto;top:auto;bottom:auto}.tl-progress-track{display:none}}.pm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:pm-fade-in .2s ease}@keyframes pm-fade-in{0%{opacity:0}to{opacity:1}}.pm-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:860px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;animation:pm-slide-up .25s ease;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.pm-modal--preview-full{max-width:min(1200px,96vw);max-height:96vh}.pm-modal::-webkit-scrollbar{width:6px}.pm-modal::-webkit-scrollbar-track{background:transparent}.pm-modal::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}@keyframes pm-slide-up{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.pm-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);flex-shrink:0}.pm-title{font-size:1.1rem;font-weight:700;letter-spacing:-.01em;margin:0}.pm-close{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:1rem;transition:color var(--transition),border-color var(--transition),background var(--transition);flex-shrink:0}.pm-close:hover{color:var(--text-primary);border-color:var(--accent-border);background:var(--accent-light)}.pm-media{position:relative;width:100%;height:260px;overflow:hidden;background:var(--bg-primary);flex-shrink:0}.pm-media--full{height:min(72vh,820px)}.pm-media img{width:100%;height:100%;object-fit:cover;display:block}.pm-media--full img{object-fit:contain}.pm-preview-toggle{position:absolute;top:.75rem;right:.75rem;display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--border);border-radius:999px;padding:.35rem .7rem;background:#00000073;color:#fff;font-size:.75rem;cursor:pointer;transition:background var(--transition),border-color var(--transition);z-index:2}.pm-preview-toggle:hover{background:#0009;border-color:var(--accent-border)}.pm-content{display:grid;grid-template-columns:1fr 1fr;gap:0;flex:1}.pm-left{padding:1.5rem;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:1.25rem}.pm-right{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.pm-section{display:flex;flex-direction:column;gap:.5rem}.pm-section-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0}.pm-overview{font-size:.875rem;color:var(--text-secondary);line-height:1.7;margin:0}.pm-features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.35rem}.pm-features li{font-size:.82rem;color:var(--text-secondary);padding-left:1rem;position:relative;line-height:1.5}.pm-features li:before{content:"•";position:absolute;left:0;color:var(--accent);font-size:.75rem}.pm-tech{display:flex;flex-wrap:wrap;gap:.4rem}.pm-links{display:flex;flex-direction:column;gap:.4rem}.pm-link{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;color:var(--text-secondary);transition:color var(--transition)}.pm-link:hover{color:var(--accent)}.pm-link svg{font-size:.85rem}.pm-status-badge{display:inline-block;background:var(--accent);color:#fff;font-size:.75rem;font-weight:600;padding:.2rem .7rem;border-radius:999px;align-self:flex-start}.pm-timeline-text{font-size:.875rem;color:var(--text-secondary)}@media (max-width: 580px){.pm-content{grid-template-columns:1fr}.pm-left{border-right:none;border-bottom:1px solid var(--border)}.pm-media{height:180px}.pm-media--full{height:48vh}.pm-preview-toggle span{display:none}}.ap-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1001;background:var(--bg-primary);display:flex;flex-direction:column;animation:ap-slide-up .35s cubic-bezier(.22,1,.36,1)}@keyframes ap-slide-up{0%{transform:translateY(100%);opacity:.6}to{transform:translateY(0);opacity:1}}.ap-header{display:flex;align-items:center;justify-content:space-between;padding:0 2rem;height:64px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-primary);position:sticky;top:0;z-index:10}.ap-back-btn{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);font-size:.85rem;font-weight:500;padding:.4rem .9rem;cursor:pointer;transition:color var(--transition),border-color var(--transition),background var(--transition);font-family:inherit}.ap-back-btn:hover{color:var(--text-primary);border-color:var(--accent-border);background:var(--accent-light)}.ap-title{font-size:1.05rem;font-weight:700;letter-spacing:-.01em;margin:0}.ap-header-end{width:110px}.ap-body{flex:1;overflow-y:auto;padding:2.5rem 2rem 3rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.ap-body::-webkit-scrollbar{width:6px}.ap-body::-webkit-scrollbar-track{background:transparent}.ap-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.ap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;max-width:1100px;margin:0 auto}.ap-card{cursor:pointer;width:auto}@media (max-width: 640px){.ap-header{padding:0 1rem}.ap-body{padding:1.5rem 1rem 2rem}.ap-header-end{width:80px}.ap-title{font-size:.95rem}}.projects-section{background:var(--bg-secondary);overflow:hidden}.projects-section .logoloop{margin-top:1rem;padding-bottom:1rem}.project-card{width:360px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition),transform var(--transition),box-shadow var(--transition);display:flex;flex-direction:column;font-size:1rem}@media (min-width: 1024px){.project-card--clickable{cursor:pointer}}.project-card:hover{border-color:var(--accent-border);transform:translateY(-5px);box-shadow:var(--shadow-accent)}.project-media{position:relative;width:100%;height:200px;overflow:hidden;background:var(--bg-primary)}.projects-section .logoloop__item .project-media img,.project-media img{width:100%!important;height:100%!important;object-fit:cover;transition:transform .5s ease;pointer-events:none}.project-card:hover .project-media img{transform:scale(1.05)}.project-media-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 60%,rgba(10,10,10,.5) 100%);pointer-events:none}.project-info{padding:1.5rem;display:flex;flex-direction:column;flex:1}.project-title{font-size:1.05rem;font-weight:700;margin-bottom:.5rem;letter-spacing:-.01em}.project-description{color:var(--text-secondary);font-size:.875rem;line-height:1.65;margin-bottom:1rem;flex:1}.project-tech{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem}.tech-badge{background:var(--accent-light);color:var(--accent);border:1px solid var(--accent-border);border-radius:6px;padding:.18rem .55rem;font-size:.75rem;font-weight:600}.project-links{display:flex;gap:.6rem}.project-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--text-secondary);font-size:.82rem;font-weight:500;padding:.4rem .9rem;border:1px solid var(--border);border-radius:8px;transition:all var(--transition)}.project-link:hover{color:var(--text-primary);border-color:var(--accent-border);background:var(--accent-light)}.project-link.primary{background:var(--accent);color:#fff;border-color:transparent}.project-link.primary:hover{background:var(--accent-hover);transform:translateY(-1px)}.projects-footer{display:flex;justify-content:center;margin-top:2rem}.projects-see-more-btn{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:1px solid var(--accent-border);border-radius:10px;color:var(--accent);font-size:.875rem;font-weight:600;padding:.55rem 1.3rem;cursor:pointer;font-family:inherit;transition:background var(--transition),color var(--transition),transform var(--transition),box-shadow var(--transition)}.projects-see-more-btn:hover{background:var(--accent);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-accent)}.skills-section{background:var(--bg-primary)}.skills-block{margin-bottom:2.5rem}.skills-category-label{text-align:center;color:var(--text-muted);font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;margin-bottom:2rem}.skills-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1.25rem}.skill-item{display:flex;flex-direction:column;align-items:center;gap:.6rem;cursor:default}.skill-box{width:64px;height:64px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:1.65rem;transition:background var(--transition),border-color var(--transition),transform var(--transition),box-shadow var(--transition)}.skill-item:hover .skill-box{background:var(--accent-light);border-color:var(--accent-border);transform:translateY(-4px);box-shadow:0 8px 20px #7c3aed33}.skill-abbr{font-size:.95rem;font-weight:800;color:var(--accent);letter-spacing:-.02em}.skill-name{color:var(--text-muted);font-size:.75rem;font-weight:500;text-align:center;max-width:72px;line-height:1.3}.skills-divider{height:1px;background:var(--border);max-width:600px;margin:0 auto 2.5rem}@media (max-width: 480px){.skill-box{width:56px;height:56px;font-size:1.45rem}.skills-grid{gap:1rem}}.contact-section{background:var(--bg-secondary)}.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:2.5rem;max-width:900px;margin:0 auto}.contact-form{display:flex;flex-direction:column;gap:1.2rem}.form-group{display:flex;flex-direction:column;gap:.45rem}.form-group label{font-size:.82rem;font-weight:600;color:var(--text-secondary);letter-spacing:.02em}.form-group input,.form-group textarea{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.8rem 1rem;color:var(--text-primary);font-family:inherit;font-size:.9rem;transition:border-color var(--transition),box-shadow var(--transition);resize:none}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-border);box-shadow:0 0 0 3px #7c3aed1a}.contact-submit{background:var(--accent);color:#fff;padding:.9rem;border-radius:var(--radius);font-size:.95rem;font-weight:600;width:100%;transition:background var(--transition),transform var(--transition),box-shadow var(--transition);box-shadow:0 4px 20px #7c3aed4d}.contact-submit:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 8px 28px #7c3aed6b}.contact-submit:disabled{opacity:.65;cursor:not-allowed}.contact-submit{display:flex;align-items:center;justify-content:center;gap:.5rem}.contact-submit-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.contact-feedback{display:flex;align-items:center;gap:.55rem;padding:.75rem 1rem;border-radius:var(--radius);font-size:.85rem;font-weight:500}.contact-feedback--success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#4ade80}.contact-feedback--error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#f87171}.contact-info{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2rem;display:flex;flex-direction:column;gap:1.75rem}.contact-info-title{font-size:1.15rem;font-weight:700}.contact-details{display:flex;flex-direction:column;gap:1rem}.contact-detail{display:flex;align-items:center;gap:.85rem;color:var(--text-secondary);font-size:.875rem;transition:color var(--transition)}a.contact-detail:hover{color:var(--accent)}.contact-detail-icon-wrap{width:34px;height:34px;background:var(--accent-light);border:1px solid var(--accent-border);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:.85rem;flex-shrink:0}.contact-social-wrap{border-top:1px solid var(--border);padding-top:1.5rem}.contact-follow-title{font-size:.82rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1rem}.contact-socials{display:flex;gap:.6rem}.contact-socials a{width:38px;height:38px;border:1px solid var(--border);border-radius:9px;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:1rem;transition:all var(--transition)}.contact-socials a:hover{color:var(--accent);border-color:var(--accent-border);background:var(--accent-light);transform:translateY(-2px)}@media (max-width: 768px){.contact-grid{grid-template-columns:1fr}}:root{--bg-primary: #0a0a0a;--bg-secondary: #0f0f23;--bg-card: rgba(255, 255, 255, .04);--bg-card-hover: rgba(255, 255, 255, .07);--accent: #7c3aed;--accent-hover: #6d28d9;--accent-light: rgba(124, 58, 237, .12);--accent-border: rgba(124, 58, 237, .4);--text-primary: #ffffff;--text-secondary: #94a3b8;--text-muted: #64748b;--border: rgba(255, 255, 255, .08);--radius: 12px;--radius-lg: 20px;--transition: .3s ease;--shadow: 0 4px 24px rgba(0, 0, 0, .4);--shadow-accent: 0 4px 24px rgba(124, 58, 237, .2)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow:hidden;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer;border:none;outline:none}img{max-width:100%;display:block}ul{list-style:none}.container{max-width:1100px;margin:0 auto;padding:0 2rem}section{min-height:100vh;background-color:var(--bg-primary);padding:6rem 0;display:flex;flex-direction:column;justify-content:center}.section-header{text-align:center;margin-bottom:3.5rem}.section-title{font-size:clamp(2rem,4vw,2.8rem);font-weight:800;letter-spacing:-.02em;margin-bottom:.75rem}.section-subtitle{color:var(--text-secondary);font-size:1rem;max-width:500px;margin:0 auto;line-height:1.7}.accent-text{color:var(--accent)}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:3px}
