@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--color-primary:#ea0052;--color-primary-hover:#c70046;--color-primary-light:#ff3d7f;--color-accent:#420017;--color-accent-secondary:#6b0f2e;--bg-primary:#fff;--bg-secondary:#fdf2f5;--bg-tertiary:#fce7ed;--bg-card:#fff;--bg-card-hover:#fdf2f5;--bg-overlay:#fffffff2;--text-primary:#420017;--text-secondary:#6b3d4d;--text-muted:#9d7585;--border-light:#f5d0dc;--border-medium:#eab8c8;--border-focus:var(--color-primary);--shadow-sm:0 1px 2px #4200170d;--shadow-md:0 4px 6px -1px #4200171a, 0 2px 4px -2px #4200171a;--shadow-lg:0 10px 15px -3px #4200171a, 0 4px 6px -4px #4200171a;--shadow-glow:0 0 30px #ea005226;--gradient-primary:linear-gradient(135deg, #ea0052 0%, #420017 100%);--gradient-secondary:linear-gradient(135deg, #ff3d7f 0%, #ea0052 100%);--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--font-sans:var(--font-geist-sans), system-ui, -apple-system, sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, monospace;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--z-dropdown:50;--z-sticky:100;--z-modal:1000}[data-theme=dark]{--color-primary:#38b6ff;--color-primary-hover:#004aad;--color-primary-light:#5cc8ff;--color-accent:#004aad;--color-accent-secondary:#38b6ff;--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--bg-card:#1e293bcc;--bg-card-hover:#334155e6;--bg-overlay:#0f172af2;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-muted:#64748b;--border-light:#38b6ff33;--border-medium:#38b6ff4d;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px -1px #0006;--shadow-lg:0 10px 15px -3px #00000080;--shadow-glow:0 0 40px #38b6ff33;--gradient-primary:linear-gradient(135deg, #38b6ff 0%, #004aad 100%);--gradient-secondary:linear-gradient(135deg, #5cc8ff 0%, #38b6ff 100%)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;height:100%}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--text-primary);background:var(--bg-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-slow), color var(--transition-slow);flex-direction:column;display:flex}a{color:inherit;text-decoration:none}.nav{z-index:var(--z-sticky);background:var(--bg-overlay);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-light);padding:var(--space-md) var(--space-xl);transition:background-color var(--transition-slow), border-color var(--transition-slow);position:fixed;top:0;left:0;right:0}.navContainer{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;display:flex}.logo{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:700}.navLinks{gap:var(--space-xl);align-items:center;list-style:none;display:flex}.navLinks a{color:var(--text-secondary);transition:color var(--transition-base);font-weight:500}.navLinks a:hover{color:var(--color-primary)}.themeToggle{border-radius:var(--radius-full);border:1px solid var(--border-light);background:var(--bg-card);width:40px;height:40px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-base);justify-content:center;align-items:center;font-size:1.25rem;display:flex}.themeToggle:hover{background:var(--bg-tertiary);border-color:var(--color-primary);transform:scale(1.05)}.mobileThemeToggle{display:none}.hero{min-height:100vh;padding:6rem var(--space-xl);background:var(--bg-primary);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.heroOrb{filter:blur(80px);opacity:.5;pointer-events:none;z-index:0;border-radius:50%;position:absolute}.heroOrb1{background:var(--color-primary);opacity:.25;width:600px;height:600px;animation:12s ease-in-out infinite orbFloat1;top:-15%;left:-10%}.heroOrb2{background:var(--color-primary-light);opacity:.2;width:500px;height:500px;animation:10s ease-in-out infinite orbFloat2;bottom:-10%;right:-5%}.heroOrb3{background:var(--gradient-primary);opacity:.12;width:400px;height:400px;animation:14s ease-in-out infinite orbFloat3;top:50%;left:50%;transform:translate(-50%,-50%)}[data-theme=dark] .heroOrb1{opacity:.3}[data-theme=dark] .heroOrb2{opacity:.25}[data-theme=dark] .heroOrb3{opacity:.15}@keyframes orbFloat1{0%,to{transform:translate(0)scale(1)}33%{transform:translate(60px,40px)scale(1.1)}66%{transform:translate(-30px,60px)scale(.95)}}@keyframes orbFloat2{0%,to{transform:translate(0)scale(1)}33%{transform:translate(-50px,-30px)scale(1.05)}66%{transform:translate(40px,-50px)scale(.9)}}@keyframes orbFloat3{0%,to{transform:translate(-50%,-50%)scale(1)}50%{transform:translate(-50%,-50%)scale(1.3)}}.heroContent{text-align:center;z-index:1;max-width:800px;position:relative}.heroGreeting{color:var(--text-muted);text-transform:uppercase;letter-spacing:3px;margin-bottom:var(--space-md);font-size:1.15rem;font-weight:500;animation:.8s both heroFadeDown}.heroTitle{margin-bottom:var(--space-lg);font-size:clamp(3rem,8vw,5.5rem);font-weight:900;line-height:1;animation:.8s .15s both heroFadeDown}.heroName{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.heroSubtitle{color:var(--text-secondary);margin-bottom:var(--space-2xl);font-size:1.2rem;line-height:1.7;animation:.8s .3s both heroFadeDown}.heroSubtitle strong{color:var(--color-primary);font-weight:600}.heroTags{gap:var(--space-sm);margin-bottom:var(--space-2xl);flex-wrap:wrap;justify-content:center;animation:.8s .45s both heroFadeDown;display:flex}.tag{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-full);color:var(--color-primary);transition:all var(--transition-base);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:.5rem 1.1rem;font-size:.875rem;font-weight:500}.tag:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);transform:translateY(-3px);box-shadow:0 6px 20px #ea005240}[data-theme=dark] .tag:hover{box-shadow:0 6px 20px #38b6ff40}.heroCta{align-items:center;gap:var(--space-sm);background:var(--gradient-primary);color:#fff;border-radius:var(--radius-full);transition:all var(--transition-slow);padding:.85rem 2rem;font-size:1rem;font-weight:600;animation:.8s .6s both heroFadeDown;display:inline-flex;box-shadow:0 4px 15px #ea00524d}[data-theme=dark] .heroCta{box-shadow:0 4px 15px #38b6ff4d}.heroCta:hover{transform:translateY(-3px);box-shadow:0 8px 30px #ea005266}[data-theme=dark] .heroCta:hover{box-shadow:0 8px 30px #38b6ff66}.heroCtaArrow{font-size:1.1rem;animation:1.5s ease-in-out infinite bounceArrow;display:inline-block}@keyframes bounceArrow{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@keyframes heroFadeDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.section{padding:var(--space-3xl) var(--space-xl);max-width:1200px;margin:0 auto}.sectionHeader{text-align:center;margin-bottom:var(--space-xl)}.sectionTitle{text-align:center;margin-bottom:var(--space-sm);color:var(--text-primary);font-size:2rem;font-weight:700}.sectionTitle span{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.sectionTitleCompact{text-align:center;margin-bottom:var(--space-2xl);color:var(--text-primary);font-size:2rem;font-weight:700}.sectionTitleCompact span{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.sectionSubtitle{text-align:center;color:var(--text-secondary);margin-bottom:var(--space-xl);font-size:1rem}.aboutSection{padding:var(--space-2xl) var(--space-xl) var(--space-xl);background:var(--bg-secondary);transition:background-color var(--transition-slow);scroll-margin-top:60px}.aboutContainer{width:100%;max-width:1100px;margin:0 auto}.aboutHeader{align-items:center;gap:var(--space-2xl);margin-bottom:var(--space-2xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--border-light);display:flex}.aboutLogoWrapper{flex-shrink:0;position:relative}.aboutLogoWrapper:after{content:"";border-radius:var(--radius-2xl);background:var(--gradient-primary);opacity:.15;z-index:0;transition:opacity var(--transition-slow);position:absolute;inset:-6px}.aboutLogoWrapper:hover:after{opacity:.3}.aboutLogo{object-fit:contain;border-radius:var(--radius-2xl);width:150px;height:150px;box-shadow:var(--shadow-lg);transition:transform var(--transition-slow);z-index:1;position:relative}.aboutLogo:hover{transform:scale(1.05)}.aboutIntro{flex:1}.aboutName{background:var(--gradient-primary);-webkit-text-fill-color:transparent;margin-bottom:var(--space-sm);-webkit-background-clip:text;background-clip:text;font-size:2.5rem;font-weight:900;line-height:1.1}.aboutRole{color:var(--color-primary);margin-bottom:var(--space-xs);font-size:1.25rem;font-weight:600}.aboutTagline{color:var(--text-secondary);font-size:1.1rem;line-height:1.5}.aboutBio{margin-bottom:var(--space-2xl)}.aboutBioTitle{margin-bottom:var(--space-md);color:var(--text-primary);font-size:1.4rem;font-weight:700}.aboutBioTitle span{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.aboutBio p{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:1rem;line-height:1.7}.aboutBio strong{color:var(--text-primary);font-weight:600}.aboutInfoGrid{justify-content:center;gap:var(--space-md);flex-wrap:wrap;display:flex}.aboutInfoCard{text-align:center;align-items:center;gap:var(--space-sm);padding:var(--space-lg);background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-xl);transition:all var(--transition-slow);box-shadow:var(--shadow-sm);flex-direction:column;flex:0 0 calc(33.333% - var(--space-md));min-width:200px;display:flex;position:relative;overflow:hidden}.aboutInfoCardAccent{background:var(--gradient-primary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;opacity:0;height:3px;transition:opacity var(--transition-slow);position:absolute;top:0;left:0;right:0}.aboutInfoCard:hover{box-shadow:var(--shadow-lg), var(--shadow-glow);border-color:var(--color-primary);transform:translateY(-6px)}.aboutInfoCard:hover .aboutInfoCardAccent{opacity:1}.infoIcon{font-size:2.5rem;line-height:1}.infoContent{align-items:center;gap:var(--space-xs);flex-direction:column;display:flex}.infoContent h3{text-transform:uppercase;letter-spacing:1.5px;color:var(--color-primary);margin-bottom:var(--space-xs);font-size:.7rem;font-weight:700}.infoContent p{color:var(--text-primary);margin-bottom:0;font-size:1.05rem;font-weight:700}.infoContent span{color:var(--text-secondary);margin-top:2px;font-size:.85rem}.aboutGrid,.aboutImageContainer,.aboutImage,.aboutContent,.aboutCards,.aboutCard{display:none}.skillsSection{background:var(--bg-secondary);min-height:100vh;padding:var(--space-sm) var(--space-xl) 6rem;transition:background-color var(--transition-slow);flex-direction:column;justify-content:center;display:flex}.skillsLayout{gap:var(--space-2xl);flex-direction:row;align-items:center;max-width:1400px;margin:0 auto;display:flex}.skillsCategoryList{gap:var(--space-lg);flex-direction:column;flex:1;display:flex}.skillCategoryGroup{gap:var(--space-sm);flex-direction:column;display:flex}.skillCategoryTitle{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);align-items:center;gap:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:1px solid var(--border-light);font-size:.85rem;font-weight:600;display:flex}.skillCategoryIcon{font-size:1rem}.skillCardsRow{flex-wrap:wrap;gap:.5rem;display:flex}.skillCard{background:var(--bg-card);border:1.5px solid var(--border-light);border-radius:var(--radius-lg);cursor:pointer;color:var(--text-secondary);white-space:nowrap;align-items:center;gap:.5rem;padding:.45rem .9rem;font-size:.85rem;font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex}.skillCard:hover{color:var(--color-primary);border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 4px 16px #ea00521f}.skillCard.active{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-glow);border-color:#0000}.skillCardName{line-height:1}.skillDetailPanel{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-2xl);padding:var(--space-xl);height:300px;box-shadow:var(--shadow-md);transition:all var(--transition-slow);flex:1;justify-content:stretch;align-items:flex-start;display:flex}.skillDetailContent{flex-direction:column;width:100%;height:100%;animation:.3s fadeSlideIn;display:flex}@keyframes fadeSlideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.skillDetailHeader{align-items:center;gap:var(--space-lg);margin-bottom:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px solid var(--border-light);display:flex}.skillDetailLogo{object-fit:contain;filter:drop-shadow(0 4px 8px #0000001a);width:64px;height:64px}[data-theme=dark] .skillDetailLogo{filter:drop-shadow(0 4px 8px #0006)}.skillDetailInfo h3{color:var(--text-primary);margin-bottom:var(--space-xs);font-size:1.5rem;font-weight:700}.skillDetailInfo p{color:var(--color-primary);font-size:.875rem;font-weight:500}.skillDetailDescription{color:var(--text-secondary);flex:1;font-size:1rem;line-height:1.8;overflow-y:auto}.projectsSection{padding:var(--space-2xl) var(--space-xl);flex-direction:column;justify-content:center;max-width:1200px;min-height:100vh;margin:0 auto;scroll-margin-top:60px;display:flex;position:relative}.projectsToolbar{justify-content:space-between;align-items:center;gap:var(--space-lg);margin-bottom:var(--space-2xl);flex-wrap:wrap;display:flex}.projectsFilters{gap:var(--space-sm);flex-wrap:wrap;display:flex}.filterBtn{border-radius:var(--radius-full);border:1px solid var(--border-light);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-base);align-items:center;gap:.4rem;padding:.5rem 1.1rem;font-family:inherit;font-size:.875rem;font-weight:500;display:inline-flex}.filterBtn:hover{border-color:var(--color-primary);color:var(--color-primary)}.filterBtn.active{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-md);border-color:#0000}.filterCount{border-radius:var(--radius-full);background:#fff3;justify-content:center;align-items:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex}.filterBtn:not(.active) .filterCount{background:var(--bg-tertiary);color:var(--text-muted)}.projectsSearch{flex:0 280px;position:relative}.searchIcon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.searchInput{border-radius:var(--radius-full);border:1px solid var(--border-light);background:var(--bg-card);width:100%;color:var(--text-primary);transition:all var(--transition-base);padding:.6rem .85rem .6rem 2.5rem;font-family:inherit;font-size:.875rem}.searchInput:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #ea00521a}[data-theme=dark] .searchInput:focus{box-shadow:0 0 0 3px #38b6ff26}.searchInput::placeholder{color:var(--text-muted)}.projectsGrid{gap:var(--space-lg);grid-template-columns:repeat(4,1fr);display:grid}.projectCard{cursor:pointer;border-radius:var(--radius-2xl);background:var(--bg-card);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);transition:all var(--transition-slow);flex-direction:column;animation:.4s both cardFadeIn;display:flex;overflow:hidden}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.projectCard:hover{box-shadow:var(--shadow-lg), var(--shadow-glow);border-color:var(--color-primary);transform:translateY(-6px)}.projectCardContent{padding:var(--space-xl);flex-direction:column;flex:1;display:flex}.projectHeader{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.projectLinkArrow{border-radius:var(--radius-full);background:var(--gradient-primary);color:#fff;width:1.6rem;height:1.6rem;transition:all var(--transition-slow);flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.projectLinkArrow:hover{transform:scale(1.15);box-shadow:0 4px 12px #ea00524d}[data-theme=dark] .projectLinkArrow:hover{box-shadow:0 4px 12px #38b6ff4d}.projectCard h3+.techPills{margin-top:auto}.techPills{padding-top:var(--space-md);flex-wrap:wrap;gap:.4rem;display:flex}.techPill{border-radius:var(--radius-full);background:var(--color-primary-alpha,#ea00521a);color:var(--color-primary);border:1px solid var(--color-primary-alpha,#ea005240);letter-spacing:.3px;padding:.25rem .65rem;font-size:.7rem;font-weight:500;display:inline-block}[data-theme=dark] .techPill{color:#38b6ff;background:#38b6ff1a;border-color:#38b6ff40}.categoryBadge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px;padding:.35rem .85rem;font-size:.75rem;font-weight:600;display:inline-block}.categoryBadge.e5{color:#0891b2;background:#06b6d426;border:1px solid #06b6d466}[data-theme=dark] .categoryBadge.e5{color:#22d3ee;background:#06b6d433;border:1px solid #06b6d480}.categoryBadge.e6{color:#be185d;background:#ec489926;border:1px solid #ec489966}[data-theme=dark] .categoryBadge.e6{color:#f472b6;background:#ec489933;border:1px solid #ec489980}.categoryBadge.perso{color:#15803d;background:#22c55e26;border:1px solid #22c55e66}[data-theme=dark] .categoryBadge.perso{color:#22c55e;background:#22c55e33;border:1px solid #22c55e80}.projectCard h3{margin-bottom:var(--space-sm);background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.25rem;line-height:1.3}.projectResume{color:var(--text-muted);flex:1;font-size:.82rem;line-height:1.5}.projectLink{align-items:center;gap:var(--space-sm);margin-top:var(--space-lg);padding:.6rem var(--space-lg);background:var(--gradient-primary);border-radius:var(--radius-lg);color:#fff;transition:all var(--transition-slow);width:fit-content;font-size:.875rem;font-weight:500;display:inline-flex}.projectLink:hover{transform:translateY(-2px);box-shadow:0 10px 30px #ea005240}[data-theme=dark] .projectLink:hover{box-shadow:0 10px 30px #38b6ff40}.projectsEmpty{text-align:center;padding:var(--space-3xl) var(--space-xl);color:var(--text-muted);grid-column:1/-1;font-size:1rem}.pagination{justify-content:center;align-items:center;gap:var(--space-sm);margin-top:var(--space-2xl);display:flex}.paginationBtn{border-radius:var(--radius-full);border:1px solid var(--border-light);background:var(--bg-card);width:40px;height:40px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-base);justify-content:center;align-items:center;font-family:inherit;font-size:1.1rem;display:flex}.paginationBtn:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff}.paginationBtn:disabled{opacity:.3;cursor:not-allowed}.paginationPages{gap:var(--space-xs);display:flex}.paginationPage{border-radius:var(--radius-full);border:1px solid var(--border-light);background:var(--bg-card);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-base);justify-content:center;align-items:center;font-family:inherit;font-size:.875rem;font-weight:500;display:flex}.paginationPage:hover{border-color:var(--color-primary);color:var(--color-primary)}.paginationPage.active{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-md);border-color:#0000}.contactSection{background:var(--bg-secondary);padding:var(--space-2xl) var(--space-xl);transition:background-color var(--transition-slow);flex-direction:column;justify-content:center;scroll-margin-top:60px;display:flex}.contactContainer{width:100%;max-width:560px;margin:0 auto}.contactSection .sectionTitleCompact{margin-bottom:var(--space-xs)}.contactSubtitle{color:var(--text-secondary);text-align:center;margin-bottom:var(--space-md);font-size:.95rem;line-height:1.4}.contactForm{gap:var(--space-sm);background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-2xl);padding:var(--space-lg);box-shadow:var(--shadow-lg);transition:all var(--transition-slow);flex-direction:column;display:flex}.contactForm:hover{box-shadow:var(--shadow-glow)}.formRow{gap:var(--space-lg);grid-template-columns:1fr 1fr;display:grid}.formGroup{gap:var(--space-sm);flex-direction:column;display:flex}.formGroup label{color:var(--text-primary);align-items:center;gap:var(--space-xs);font-size:.875rem;font-weight:600;display:flex}.formIcon{font-size:.9rem}.optionalLabel{color:var(--text-muted);font-size:.8rem;font-weight:400}.formGroup input,.formGroup textarea{padding:var(--space-md);background:var(--bg-primary);border:1.5px solid var(--border-light);border-radius:var(--radius-lg);color:var(--text-primary);transition:all var(--transition-base);font-family:inherit;font-size:1rem}.formGroup input:focus,.formGroup textarea:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #ea00521a}[data-theme=dark] .formGroup input:focus,[data-theme=dark] .formGroup textarea:focus{box-shadow:0 0 0 3px #38b6ff26}.formGroup input::placeholder,.formGroup textarea::placeholder{color:var(--text-muted)}.formGroup textarea{resize:vertical;min-height:100px}.dropZone{border:2px dashed var(--border-medium);border-radius:var(--radius-lg);padding:var(--space-md);text-align:center;cursor:pointer;transition:all var(--transition-base);background:var(--bg-primary);position:relative}.dropZone:hover{border-color:var(--color-primary);background:var(--bg-secondary)}.dropZoneDragging{border-color:var(--color-primary);background:var(--bg-tertiary);transform:scale(1.01);box-shadow:0 0 0 4px #ea00521a}[data-theme=dark] .dropZoneDragging{box-shadow:0 0 0 4px #38b6ff26}.dropZoneHasFile{border-style:solid;border-color:var(--color-primary);background:var(--bg-secondary)}.dropZoneInput{display:none}.dropZonePlaceholder{flex-direction:column;align-items:center;gap:2px;display:flex}.dropZoneUploadIcon{opacity:.7;font-size:1.25rem}.dropZoneText{color:var(--text-secondary);font-size:.8rem}.dropZoneText strong{color:var(--color-primary)}.dropZoneHint{color:var(--text-muted);font-size:.7rem}.dropZoneFileInfo{align-items:center;gap:var(--space-md);text-align:left;display:flex}.dropZoneFileIcon{flex-shrink:0;font-size:1.75rem}.dropZoneFileDetails{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.dropZoneFileName{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:600;overflow:hidden}.dropZoneFileSize{color:var(--text-muted);font-size:.8rem}.dropZoneRemove{border-radius:var(--radius-full);border:1px solid var(--border-light);background:var(--bg-card);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-base);flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;display:flex}.dropZoneRemove:hover{color:#ef4444;background:#ef444426;border-color:#ef444466}.fieldError{color:#ef4444;margin-top:var(--space-xs);font-size:.8rem}.captchaWrapper{justify-content:center;display:flex}.submitBtn{padding:var(--space-md) var(--space-xl);background:var(--gradient-primary);border-radius:var(--radius-lg);color:#fff;cursor:pointer;transition:all var(--transition-slow);justify-content:center;align-items:center;gap:var(--space-sm);border:none;font-size:1rem;font-weight:600;display:flex}.submitBtn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 30px #ea00524d}[data-theme=dark] .submitBtn:hover:not(:disabled){box-shadow:0 10px 30px #38b6ff4d}.submitBtn:disabled{opacity:.6;cursor:not-allowed}.submitSpinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.formMessage{padding:var(--space-md);border-radius:var(--radius-lg);text-align:center;justify-content:center;align-items:center;gap:var(--space-sm);font-weight:500;display:flex}.formMessageIcon{font-size:1.1rem}.formMessage.success{color:#15803d;background:#22c55e26;border:1px solid #22c55e66}[data-theme=dark] .formMessage.success{color:#22c55e;background:#22c55e33}.formMessage.error{color:#b91c1c;background:#ef444426;border:1px solid #ef444466}[data-theme=dark] .formMessage.error{color:#ef4444;background:#ef444433}.modal{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:var(--z-modal);padding:var(--space-xl);background:#00000080;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}[data-theme=dark] .modal{background:#000c}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modalContent{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-2xl);padding:var(--space-2xl);width:100%;max-width:800px;max-height:85vh;box-shadow:var(--shadow-lg);animation:.3s slideUp;position:relative;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modalClose{top:var(--space-md);right:var(--space-md);border-radius:var(--radius-full);border:1px solid var(--border-light);background:var(--bg-card);width:40px;height:40px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-base);justify-content:center;align-items:center;font-size:1.5rem;display:flex;position:absolute}.modalClose:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.modalContent h2{margin:var(--space-md) 0 var(--space-lg);background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.75rem}.modalDescription{color:var(--text-secondary);line-height:1.8}.modalDescription p{margin-bottom:var(--space-md)}.modalDescription ul{margin:var(--space-md) 0;padding-left:var(--space-lg)}.modalDescription li{margin-bottom:var(--space-sm)}.modalDescription strong{color:var(--text-primary)}.modalDescription hr{border:none;border-top:1px solid var(--border-light);margin:var(--space-lg) 0}.modalDescription h4{color:var(--color-accent);margin:var(--space-lg) 0 var(--space-md);font-size:1.25rem}.modalDescription h5{color:var(--color-primary);margin:var(--space-md) 0 .75rem;font-size:1.1rem}.modalDescription h6{color:var(--text-primary);margin:.75rem 0 var(--space-sm);font-size:1rem}.modalDescription code{background:var(--bg-tertiary);padding:.2rem var(--space-sm);border-radius:var(--radius-sm);color:var(--color-accent);font-size:.9em}.modalDescription table{border-collapse:collapse;width:100%;margin:var(--space-md) 0}.modalDescription th,.modalDescription td{border:1px solid var(--border-light);text-align:left;padding:.75rem}.modalDescription th{background:var(--bg-tertiary)}.footer{padding:var(--space-xl);text-align:center;color:var(--text-muted);border-top:1px solid var(--border-light);transition:border-color var(--transition-slow)}@media (max-width:1024px){.projectsGrid{grid-template-columns:repeat(2,1fr)}.aboutHeader{text-align:center;gap:var(--space-xl);flex-direction:column}.aboutInfoCard{flex:0 0 calc(33.333% - var(--space-lg))}.skillsLayout{gap:var(--space-lg)}.skillDetailPanel{flex:0 0 380px}}@media (max-width:768px){.navLinks{display:none}.mobileThemeToggle{display:block}.nav{padding:var(--space-md)}.hero{padding:5rem var(--space-lg)}.heroGreeting{letter-spacing:2px;font-size:.95rem}.heroTitle{font-size:clamp(2.25rem,10vw,3.5rem)}.heroSubtitle{font-size:1rem}.heroTags{gap:var(--space-sm)}.tag{padding:.4rem .8rem;font-size:.8rem}.heroCta{padding:.75rem 1.5rem;font-size:.9rem}.section{padding:var(--space-2xl) var(--space-md)}.sectionTitle,.sectionTitleCompact{font-size:1.5rem}.aboutSection{padding:var(--space-2xl) var(--space-md);min-height:auto}.aboutHeader{text-align:center;gap:var(--space-lg);flex-direction:column}.aboutLogo{width:140px;height:140px}.aboutName{font-size:2.25rem}.aboutRole{font-size:1.25rem}.aboutTagline{font-size:1rem}.aboutInfoCard{flex:0 0 calc(50% - var(--space-lg));min-width:160px}.aboutInfoCard:last-child{flex:0 0 calc(50% - var(--space-lg))}.skillsSection{padding:var(--space-2xl) var(--space-md);min-height:auto}.skillsLayout{flex-direction:column}.skillDetailPanel{flex:unset;width:100%;padding:var(--space-lg);position:static}.skillCardsRow{justify-content:flex-start}.skillCard{padding:.4rem .7rem;font-size:.8rem}.skillCardLogo{width:18px;height:18px}.skillDetailHeader{text-align:center;flex-direction:column}.skillDetailLogo{width:48px;height:48px}.skillDetailInfo h3{font-size:1.25rem}.projectsSection{padding:var(--space-2xl) var(--space-md)}.projectsToolbar{flex-direction:column;align-items:stretch}.projectsSearch{flex:100%}.projectsGrid{grid-template-columns:1fr}.projectCardContent{padding:var(--space-lg)}.contactSection{padding:var(--space-2xl) var(--space-md)}.contactForm{padding:var(--space-lg)}.formRow{grid-template-columns:1fr}.modalContent{padding:var(--space-lg);margin:var(--space-md);max-height:90vh}.modalContent h2{font-size:1.35rem}}@media (max-width:480px){.heroTitle{font-size:1.75rem}.heroSubtitle{font-size:.9rem}.aboutInfoCard{min-width:unset;flex:100%}.aboutInfoCard:last-child{flex:100%}.infoIcon{font-size:2rem}.filterBtn{padding:.4rem .85rem;font-size:.8rem}}
