@import url("https://fonts.googleapis.com/css2?family=Fragment+Mono&family=Outfit:wght@400;500;600;700;800&display=swap");:root{--container-width:1200px;--font-sans:"Outfit",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"Fragment Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,"Roboto Mono",monospace;--gap:1rem;--radius:10px;--accent:rgba(255,255,255,0.18);--muted:#6b7280;--footer-padding-vertical:2.25rem;--footer-padding-horizontal:1.5rem;--footer-radius:12px;--font-size-hero:3.5rem;--font-size-h1:2.5rem;--font-size-h2:2rem;--font-size-h3:1.5rem;--font-size-body-large:1.25rem;--font-size-body:1rem;--font-size-small:.875rem;--font-size-xs:.75rem;--font-weight-black:900;--font-weight-bold:700;--font-weight-semibold:600;--font-weight-medium:500;--font-weight-regular:400;--font-weight-light:300;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:2.5rem;--space-3xl:3rem;--space-4xl:4rem;--space-5xl:5rem;--space-6xl:6rem;--section-spacing-top:var(--space-5xl);--section-spacing-bottom:var(--space-4xl);--content-spacing:var(--space-xl);--element-spacing:var(--space-lg);--content-max-width:1200px;--content-padding-x:var(--space-xl);--content-padding-y:var(--space-3xl);--space-blue-deep:#1e3a8a;--space-blue-primary:#1e40af;--space-blue-medium:#2563eb;--space-blue-light:#3b82f6;--space-blue-pale:#eff6ff;--cosmic-black:#080d14;--space-black:#0b1220;--space-gray-dark:#374151;--space-gray-900:#111827;--space-gray-800:#1f2937;--space-gray-700:#374151;--space-gray-600:#4b5563;--space-gray-400:#9ca3af;--space-gray-200:#e5e7eb;--pure-white:#fff;--space-white:#f7f9fb;--off-white:#eef2f6;--paper:#fbfcfd;--ink-warm:#2f3a2f;--primary-color:var(--space-blue-primary);--primary-dark:var(--space-blue-deep);--primary-light:var(--space-blue-medium);--secondary-color:var(--space-blue-light);--accent-color:#d8efe4;--primary-gradient:linear-gradient(135deg,var(--space-blue-deep) 0,var(--space-blue-primary) 100%);--secondary-gradient:linear-gradient(135deg,var(--space-blue-medium),var(--space-blue-light));--interactive-gradient:linear-gradient(135deg,var(--space-blue-primary) 0,var(--space-blue-deep) 100%);--bg-gradient-light:linear-gradient(135deg,var(--pure-white) 0,var(--space-white) 100%);--bg-gradient-dark:linear-gradient(135deg,var(--cosmic-black) 0,var(--space-gray-900) 100%);--cosmic-gradient:var(--bg-gradient-dark);--text-primary:var(--space-gray-900);--text-secondary:var(--space-gray-600);--text-muted:var(--space-gray-400);--text-light:var(--space-gray-200);--text-white:var(--pure-white);--bg-light:var(--pure-white);--bg-light-secondary:var(--space-white);--bg-medium:var(--off-white);--bg-dark:var(--space-gray-900);--bg-dark-secondary:var(--space-gray-800);--shadow-light:rgba(15,23,42,0.06);--shadow-medium:rgba(15,23,42,0.1);--shadow-heavy:rgba(15,23,42,0.16);--shadow-cosmic:rgba(15,76,129,0.22);--shadow-blue:rgba(30,58,138,0.15);--interactive-bg:rgba(30,58,138,0.08);--interactive-bg-hover:rgba(30,58,138,0.15);--interactive-border:rgba(30,58,138,0.25);--interactive-shadow:var(--shadow-blue);--focus-ring:rgba(102,126,234,0.5);--focus-outline:3px solid var(--focus-ring);--breakpoint-mobile:480px;--breakpoint-tablet:768px;--breakpoint-desktop:1024px;--breakpoint-large:1200px;--terminal-bg:#0b1220;--terminal-bg-secondary:#0f172a;--terminal-border:rgba(96,165,250,0.25);--terminal-text:#e2e8f0;--terminal-text-dim:#64748b;--terminal-prompt:#34d399;--terminal-chrome-red:#ff5f56;--terminal-chrome-yellow:#ffbd2e;--terminal-chrome-green:#27c93f;--status-green:#34d399;--status-green-glow:rgba(52,211,153,0.5);--eyebrow-color-light:var(--space-blue-medium);--eyebrow-color-dark:var(--space-blue-light)}*{margin:0;padding:0;box-sizing:border-box;font-size:100%;font:inherit;vertical-align:baseline;scroll-behavior:smooth}.portfolio-body::-webkit-scrollbar{width:18px;height:1px}.portfolio-body::-webkit-scrollbar-track{background:var(--pure-white)}.portfolio-body::-webkit-scrollbar-thumb{background-color:var(--space-blue-primary);border-radius:20px;border:3px solid var(--pure-white)}.portfolio-body{color:var(--text-primary);font-family:var(--font-sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 12% 10%,rgba(216,239,228,0.72),transparent 28rem),radial-gradient(circle at 88% 2%,rgba(37,99,235,0.13),transparent 26rem),linear-gradient(135deg,var(--paper) 0,var(--space-white) 100%);background-attachment:fixed;position:relative}.portfolio-body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.32;background-image:linear-gradient(rgba(15,23,42,0.035) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,0.035) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 78%)}.portfolio-body>*{position:relative;z-index:1}.portfolio-main{background:transparent;transition:background-color .45s ease,color .45s ease;scroll-behavior:smooth;border-radius:0 0 var(--footer-radius) var(--footer-radius);box-shadow:0 0 20px var(--shadow-light);overflow:hidden}*:focus-visible{outline:var(--focus-outline);outline-offset:2px;border-radius:4px}.dark-theme.portfolio-body,html.dark-theme .portfolio-body{background:radial-gradient(circle at 14% 12%,rgba(34,197,94,0.08),transparent 28rem),radial-gradient(circle at 84% 4%,rgba(59,130,246,0.16),transparent 30rem),linear-gradient(135deg,#080d14 0,#111827 100%);color:var(--text-white)}.dark-theme.portfolio-body::before,html.dark-theme .portfolio-body::before{opacity:.22;background-image:linear-gradient(rgba(226,232,240,0.055) 1px,transparent 1px),linear-gradient(90deg,rgba(226,232,240,0.055) 1px,transparent 1px)}.dark-theme.portfolio-body::-webkit-scrollbar-thumb{background-color:var(--space-blue-light);border:3px solid var(--cosmic-black)}.dark-theme.portfolio-body::-webkit-scrollbar-thumb:hover{background-color:var(--space-blue-medium)}.dark-theme .portfolio-main{background:transparent;box-shadow:0 0 20px var(--shadow-cosmic)}.portfolio-header{background:rgba(251,252,253,0.82);text-align:center;box-shadow:none;border-bottom:1px solid rgba(15,23,42,0.08);backdrop-filter:blur(18px);position:sticky;top:0;z-index:20;overflow:hidden}.skip-link{position:absolute;top:-100px;left:0;background:var(--space-blue-medium);color:white;padding:1rem 2rem;z-index:9999;transition:top .3s ease;text-decoration:none;font-weight:bold;border-radius:0 0 8px 0}.skip-link:focus{top:0}.nav-menu{display:flex;justify-content:space-between;align-items:center;padding:0 2rem;max-width:1200px;margin:0 auto}@media(max-width:768px){.nav-menu{padding:0 1rem}}.nav-links{display:flex;gap:1rem}@media(max-width:480px){.nav-links{gap:.5rem}}.nav-item{padding:20px 10px;display:inline-block;font-size:1.1rem;color:var(--space-blue-primary);transition:all .3s ease;opacity:.9;border-bottom:2px solid transparent;position:relative;z-index:1}@media(max-width:768px){.nav-item{padding:15px 5px;font-size:.95rem}}@media(max-width:480px){.nav-item{padding:12px 4px;font-size:.85rem}}.nav-item:hover{transform:scale(1.05) translateY(-2px);opacity:1;border-bottom-color:var(--space-blue-medium);color:var(--space-blue-deep);text-shadow:0 2px 10px rgba(59,130,246,0.2)}.nav-link:focus-visible,.nav-item:focus-visible{outline:var(--focus-outline);outline-offset:2px;border-radius:4px}.dark-theme .portfolio-header{background:linear-gradient(135deg,var(--cosmic-black) 0,var(--space-gray-900) 100%);border-bottom:2px solid var(--space-blue-medium);box-shadow:0 4px 20px var(--shadow-cosmic);position:relative}.dark-theme .nav-item{color:var(--space-blue-light);text-shadow:0 0 10px rgba(96,165,250,0.3)}.dark-theme .nav-item:hover{border-bottom-color:var(--space-blue-light);text-shadow:0 0 15px rgba(96,165,250,0.5);color:var(--space-white)}.dark-theme .favicon-icon{background:rgba(59,130,246,0.1);border:1px solid rgba(59,130,246,0.2)}.dark-theme .favicon-icon:hover{background:rgba(59,130,246,0.2);box-shadow:0 6px 16px rgba(59,130,246,0.3)}#photo{width:min(30vw,24rem);height:min(38vw,30rem);border-radius:28px;object-fit:cover;flex-shrink:0;transition:transform 300ms ease,box-shadow 300ms ease;box-shadow:0 24px 70px rgba(15,23,42,0.18);border:1px solid rgba(255,255,255,0.68)}#photo:hover{transform:translateY(-5px) rotate(1deg);box-shadow:0 30px 84px rgba(15,23,42,0.24)}.icons-favicon img{padding-top:1rem;width:4rem;height:4rem;object-fit:contain}.favicon-icon{max-width:100%;transition:transform .3s ease,opacity .3s ease;background:rgba(255,255,255,0.62);padding:8px;margin:0 .5rem;border-radius:10px;border:1px solid rgba(15,23,42,0.07)}.favicon-icon:hover{transform:translateY(-3px) scale(1.04);transition:transform .3s ease}.header-controls{display:flex;align-items:center;gap:1.5rem;margin-left:1rem}@media(max-width:768px){.header-controls{gap:.75rem;margin-left:.5rem}}@media(max-width:480px){.header-controls{gap:.4rem}}.control-btn{background:transparent;border:none;font-family:inherit;font-size:1.1rem;font-weight:700;color:var(--space-blue-primary);cursor:pointer;padding:.5rem;transition:all .3s ease;display:flex;align-items:center;justify-content:center;min-width:40px;border-radius:8px}.control-btn:hover{background:var(--interactive-bg);color:var(--space-blue-deep);transform:translateY(-2px)}.control-btn i{font-size:1.2rem;color:inherit;opacity:1!important;display:inline-block}.dark-theme .control-btn{color:var(--space-blue-light)}.dark-theme .control-btn:hover{background:rgba(59,130,246,0.1);color:var(--pure-white);text-shadow:0 0 10px rgba(96,165,250,0.5)}.dark-theme .favicon-icon{background:rgba(59,130,246,0.1);border:1px solid rgba(59,130,246,0.2)}.dark-theme .favicon-icon:hover{background:rgba(59,130,246,0.2);box-shadow:0 6px 16px rgba(59,130,246,0.3)}.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--space-blue-deep) 0,var(--space-blue-medium) 50%,var(--space-blue-light) 100%);z-index:1000;transition:width .12s ease-out}.nav-index{color:var(--space-blue-medium);opacity:.6;font-size:.85em;margin-right:.35em}.dark-theme .nav-index{color:var(--space-blue-light);opacity:.7}.section-eyebrow{display:block;text-align:left;font-size:var(--font-size-small);font-weight:var(--font-weight-medium);letter-spacing:.02em;color:var(--eyebrow-color-light);margin-bottom:var(--space-sm);opacity:.85}.dark-theme .section-eyebrow{color:var(--eyebrow-color-dark)}.terminal-window{width:100%;max-width:34rem;border-radius:12px;overflow:hidden;background:var(--terminal-bg);border:1px solid var(--terminal-border);box-shadow:0 20px 50px rgba(2,6,23,0.35),0 0 0 1px rgba(255,255,255,0.02) inset}.terminal-chrome{display:flex;align-items:center;gap:.5rem;padding:.65rem .9rem;background:var(--terminal-bg-secondary);border-bottom:1px solid var(--terminal-border)}.terminal-dot{width:11px;height:11px;border-radius:50%;flex-shrink:0}.terminal-dot.dot-red{background:var(--terminal-chrome-red)}.terminal-dot.dot-yellow{background:var(--terminal-chrome-yellow)}.terminal-dot.dot-green{background:var(--terminal-chrome-green)}.terminal-title{flex:1;text-align:center;font-size:var(--font-size-xs);color:var(--terminal-text-dim);letter-spacing:.01em}.terminal-body{padding:1.5rem;display:flex;flex-direction:column;gap:.6rem;font-family:var(--font-mono)}.terminal-line{display:flex;align-items:baseline;gap:.55em;font-size:var(--font-size-body);color:var(--terminal-text);line-height:1.5}.prompt-symbol{color:var(--terminal-prompt);font-weight:var(--font-weight-bold)}.prompt-arrow{color:var(--terminal-text-dim)}.terminal-name{font-size:1.85rem;font-weight:var(--font-weight-black);color:var(--pure-white);letter-spacing:-0.01em;line-height:1.15;margin:.2rem 0 .1rem 0}.terminal-body .typedtext{color:var(--space-blue-light);font-weight:var(--font-weight-semibold)}.terminal-subline{color:var(--terminal-text-dim);font-size:var(--font-size-small);margin-left:1.2em}.terminal-link{display:inline-flex;align-items:center;gap:.5em;color:var(--space-blue-light);text-decoration:none;border-bottom:1px solid rgba(96,165,250,0.4);transition:all .2s ease}.terminal-link:hover{color:var(--pure-white);border-bottom-color:var(--pure-white)}.terminal-link i{font-size:.8em}.status-pill{display:inline-flex;align-items:center;gap:.55em;margin-top:.75rem;padding:.4rem .85rem;border-radius:999px;background:rgba(52,211,153,0.08);border:1px solid rgba(52,211,153,0.3);color:var(--terminal-text);font-size:var(--font-size-small);width:fit-content}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--status-green);box-shadow:0 0 0 0 var(--status-green-glow);animation:statusPulse 2s ease-out infinite;flex-shrink:0}@keyframes statusPulse{0%{box-shadow:0 0 0 0 var(--status-green-glow)}70%{box-shadow:0 0 0 6px rgba(52,211,153,0)}100%{box-shadow:0 0 0 0 rgba(52,211,153,0)}}.nav-link,.social-link,.contact-link,.control-btn{position:relative;overflow:hidden}.ripple{position:absolute;border-radius:50%;background:rgba(59,130,246,0.25);transform:scale(0);animation:rippleAnimation .6s linear;pointer-events:none;z-index:10}@keyframes rippleAnimation{to{transform:scale(4);opacity:0}}.tooltip{position:absolute;background:var(--space-gray-900);color:var(--pure-white);padding:.35rem .65rem;border-radius:6px;font-size:var(--font-size-xs);opacity:0;transition:opacity .25s ease;pointer-events:none;z-index:1000;white-space:nowrap}.tooltip.show{opacity:.95}.preview-grid{display:grid;grid-template-columns:1.15fr .9fr;gap:var(--space-lg);margin-top:var(--space-xl);text-align:left}.preview-card{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-lg);min-height:17rem;border-radius:10px;background:linear-gradient(180deg,rgba(255,255,255,0.82),rgba(247,249,251,0.68)),radial-gradient(circle at 12% 0,rgba(216,239,228,0.7),transparent 16rem);border:1px solid rgba(15,23,42,0.08);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;position:relative;overflow:hidden}.preview-card:first-child{grid-row:span 2;min-height:24rem}.preview-card::before{content:"";position:absolute;inset:auto 1.25rem 1.25rem auto;width:4.5rem;height:4.5rem;border:1px solid rgba(37,99,235,0.18);border-radius:999px;opacity:.5}.preview-card:hover{transform:translateY(-5px);border-color:rgba(37,99,235,0.32);box-shadow:0 20px 50px rgba(15,23,42,0.12)}.preview-card-tags{display:flex;flex-wrap:wrap;gap:.4rem}.preview-card h3{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--space-blue-deep);text-wrap:balance}.preview-card:first-child h3{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.05}.preview-card p{font-size:var(--font-size-body);color:var(--space-gray-600);line-height:1.6;flex:1;max-width:58ch}.preview-card-link{display:inline-flex;align-items:center;gap:.4em;margin-top:var(--space-xs);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);color:var(--space-blue-medium);text-decoration:none}.preview-card-link i{transition:transform .2s ease}.preview-card-link:hover i{transform:translateX(3px)}.dark-theme .preview-card{background:rgba(59,130,246,0.06);border-color:rgba(59,130,246,0.2)}.dark-theme .preview-card h3{color:var(--space-blue-light)}.dark-theme .preview-card p{color:var(--space-gray-200)}.btn-terminal{display:inline-flex;align-items:center;gap:.5em;margin-top:var(--space-xl);padding:.65rem 1.25rem;border-radius:8px;border:1px solid var(--space-blue-medium);color:var(--space-blue-deep);font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);text-decoration:none;transition:all .25s ease}.btn-terminal:hover{background:var(--space-blue-medium);color:var(--pure-white);transform:translateY(-2px)}.dark-theme .btn-terminal{color:var(--space-blue-light);border-color:var(--space-blue-light)}.dark-theme .btn-terminal:hover{background:var(--space-blue-light);color:var(--cosmic-black)}.contact-cta-buttons{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:var(--space-md);margin-top:var(--space-xl)}.contact-cta-btn{display:inline-flex;align-items:center;gap:.6em;padding:.85rem 1.5rem;border-radius:10px;font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);text-decoration:none;transition:all .25s ease}.contact-cta-btn.primary{background:linear-gradient(135deg,var(--space-blue-deep) 0,var(--space-blue-medium) 100%);color:var(--pure-white);box-shadow:0 8px 24px rgba(59,130,246,0.25)}.contact-cta-btn.primary:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(59,130,246,0.35)}.contact-cta-btn.secondary{border:1px solid var(--space-blue-medium);color:var(--space-blue-deep)}.dark-theme .contact-cta-btn.secondary{color:var(--space-blue-light);border-color:var(--space-blue-light)}.contact-cta-btn.secondary:hover{background:rgba(59,130,246,0.1);transform:translateY(-3px)}.infos,.about,.skills,.projects-preview,.experience,.education,.contact-cta{scroll-margin-top:1.5rem}.infos{display:flex;justify-content:flex-start;align-items:center;gap:var(--space-4xl);text-align:left}.texts{flex:1 1 38rem;max-width:42rem;display:flex;flex-direction:column;gap:var(--space-lg)}.texts p{font-size:var(--font-size-body-large);font-weight:var(--font-weight-regular);color:var(--space-gray-600);line-height:1.6;margin:0;letter-spacing:.01em}.texts .section-eyebrow{margin-bottom:0}.hero-kicker{max-width:42rem;font-size:clamp(1.55rem,4vw,3.9rem)!important;line-height:.98!important;font-weight:800!important;color:var(--space-black)!important;letter-spacing:0!important;text-wrap:balance}.hero-proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;max-width:42rem;overflow:hidden;border-radius:12px;border:1px solid rgba(15,23,42,0.08);background:rgba(15,23,42,0.08)}.hero-proof div{display:flex;flex-direction:column;gap:.15rem;padding:1rem;background:rgba(255,255,255,0.72)}.hero-proof strong{font-size:clamp(1.05rem,1.7vw,1.35rem);line-height:1;color:var(--space-blue-deep);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums;white-space:nowrap}.hero-proof span{font-size:var(--font-size-xs);color:var(--space-gray-600);line-height:1.35}.about h2,.skills h2,.projects-preview h2,.experience h2,.education h2,.contact-cta h2{font-size:var(--font-size-h1);font-weight:var(--font-weight-bold);color:var(--space-black);margin-bottom:var(--space-xl);position:relative;text-align:left}.about h2::after,.skills h2::after,.projects-preview h2::after,.experience h2::after,.education h2::after,.contact-cta h2::after{content:"";position:absolute;bottom:-12px;left:0;width:100px;height:4px;background:linear-gradient(90deg,var(--space-blue-deep) 0,var(--space-blue-medium) 100%);border-radius:2px}.about{text-align:left}.about div{display:flex;align-items:flex-start;gap:var(--space-3xl);overflow:visible;max-width:58rem}.contact-cta p{max-width:34rem;font-size:var(--font-size-body-large);color:var(--space-gray-600);line-height:1.6}.dark-theme .contact-cta p{color:var(--space-gray-200)}.github-activity{display:block;margin-top:var(--space-xl);max-width:28rem}.github-activity-img{width:100%;height:auto;border-radius:12px;transition:transform .25s ease}.github-activity:hover .github-activity-img{transform:translateY(-3px)}.github-activity .gh-dark{display:none}.dark-theme .github-activity .gh-light{display:none}.dark-theme .github-activity .gh-dark{display:block}.about p{font-size:var(--font-size-body);font-weight:var(--font-weight-regular);color:var(--space-gray-700);line-height:1.7;margin:0;letter-spacing:.01em;text-align:left;flex:1;max-width:66ch;text-wrap:pretty}.skill-groups{display:grid;grid-template-columns:minmax(16rem,0.85fr) minmax(18rem,1.15fr);gap:1.1rem 2rem;max-width:62rem;margin-top:var(--space-lg)}.timeline-content ul{margin:10px 0 10px 20px;list-style:disc;color:inherit}.timeline-content ul li{margin-bottom:.4rem;line-height:1.5}.skills{background:linear-gradient(135deg,var(--bg-dark) 0,var(--bg-dark-secondary) 100%);text-align:left}.skill-groups h3{text-align:left;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:var(--font-weight-semibold);color:var(--space-blue-light);margin-bottom:var(--space-sm);opacity:.85}.skill-tags{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;row-gap:.5rem}.skill-tag{display:inline-flex;align-items:center;gap:.4em;font-size:var(--font-size-small);font-weight:var(--font-weight-medium);color:var(--space-gray-400);white-space:nowrap;transition:color .2s ease}.skill-tag:hover{color:var(--space-blue-light)}.skill-tag:not(:last-child)::after{content:"•";margin:0 .7rem;color:var(--space-blue-medium);opacity:.5}.skill-tag-icon{width:1em;height:1em;object-fit:contain;flex-shrink:0}.skill-tag i{font-size:.95em;color:var(--space-blue-medium)}.experience{text-align:left}.timeline{position:relative;max-width:800px;margin:0 auto;padding:var(--space-xl) 0}.timeline::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--space-blue-deep) 0,var(--space-blue-medium) 50%,var(--space-blue-light) 100%);transform:translateX(-50%);border-radius:2px;box-shadow:0 0 10px rgba(59,130,246,0.3)}.timeline-item{position:relative;margin-bottom:var(--space-4xl);display:flex;align-items:center;justify-content:center}.timeline-item::before{content:"";position:absolute;left:50%;top:20px;width:16px;height:16px;background:var(--space-blue-medium);border:3px solid var(--bg-light);border-radius:50%;transform:translateX(-50%);z-index:2;box-shadow:0 0 15px rgba(59,130,246,0.4)}.timeline-date{position:absolute;left:0;top:0;font-size:var(--font-size-small);font-weight:var(--font-weight-bold);color:var(--space-blue-deep);background:linear-gradient(135deg,var(--space-blue-pale) 0,rgba(255,255,255,0.9) 100%);padding:.5rem 1rem;border-radius:20px;border:2px solid var(--space-blue-light);white-space:nowrap;box-shadow:0 4px 15px rgba(59,130,246,0.2)}.timeline-content{background:linear-gradient(135deg,rgba(255,255,255,0.95) 0,rgba(248,250,252,0.9) 100%);padding:var(--space-xl);border-radius:0 12px 12px 0;border-left:4px solid var(--space-blue-medium);box-shadow:0 6px 25px rgba(0,0,0,0.08);max-width:350px;margin-left:auto;margin-right:auto;text-align:left;position:relative;backdrop-filter:blur(10px)}.timeline-item:nth-child(odd) .timeline-content{margin-left:0;margin-right:auto}.timeline-item:nth-child(even) .timeline-content{margin-left:auto;margin-right:0}.timeline-item:nth-child(odd) .timeline-date{right:auto;left:0}.timeline-item:nth-child(even) .timeline-date{left:auto;right:0}.timeline-content h3{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--space-blue-deep);margin-bottom:var(--space-sm)}.timeline-content h4{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--space-gray-600);margin-bottom:var(--space-md);font-style:italic}.timeline-content p{font-size:var(--font-size-body);color:var(--space-gray-700);line-height:1.6;margin-bottom:var(--space-md)}.timeline-technologies{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}.tech-tag{background:linear-gradient(135deg,var(--space-blue-light) 0,var(--space-blue-medium) 100%);color:var(--text-white);padding:.25rem .75rem;border-radius:15px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);box-shadow:0 2px 8px rgba(59,130,246,0.2);transition:all .3s ease}.tech-tag:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(59,130,246,0.3)}.timeline-placeholder{opacity:.6}.education{text-align:left}.education-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:var(--space-xl);margin-top:var(--space-lg);align-items:start}.education-item{background:linear-gradient(135deg,rgba(255,255,255,0.95) 0,rgba(248,250,252,0.9) 100%);border-radius:0 16px 16px 0;padding:var(--space-xl);border-left:4px solid var(--space-blue-medium);box-shadow:0 6px 25px rgba(0,0,0,0.08);transition:all .3s ease;position:relative;backdrop-filter:blur(10px);text-align:left}.education-item:hover{transform:translateY(-5px);box-shadow:0 12px 35px rgba(0,0,0,0.12);border-left-color:var(--space-blue-light)}.education-icon{display:flex;align-items:center;justify-content:center;width:60px;height:60px;background:linear-gradient(135deg,var(--space-blue-medium) 0,var(--space-blue-light) 100%);border-radius:50%;margin-bottom:var(--space-lg);color:var(--text-white);font-size:1.5rem;box-shadow:0 4px 15px rgba(59,130,246,0.3)}.education-content h3{font-size:var(--font-size-h3);font-weight:var(--font-weight-bold);color:var(--space-blue-deep);margin-bottom:var(--space-sm);line-height:1.3}.education-content h4{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--space-gray-600);margin-bottom:var(--space-sm);font-style:italic}.education-period{font-size:var(--font-size-small);font-weight:var(--font-weight-bold);color:var(--space-blue-medium);background:var(--space-blue-pale);padding:.25rem .75rem;border-radius:12px;display:inline-block;margin-bottom:var(--space-md)}.education-content p{font-size:var(--font-size-body);color:var(--space-gray-700);line-height:1.6;margin-bottom:var(--space-md)}.education-achievements{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}.achievement-tag{background:linear-gradient(135deg,var(--space-blue-light) 0,var(--space-blue-medium) 100%);color:var(--text-white);padding:.25rem .75rem;border-radius:15px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);box-shadow:0 2px 8px rgba(59,130,246,0.2);transition:all .3s ease}.achievement-tag:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(59,130,246,0.3)}.education-placeholder{opacity:.6}.education-placeholder .education-icon{background:linear-gradient(135deg,var(--space-gray-400) 0,var(--space-gray-500) 100%)}.education-placeholder .education-content h3{color:var(--space-gray-500)}.education-placeholder{border-left-color:var(--space-gray-400)}.portfolio-footer{background:linear-gradient(135deg,var(--space-white) 0,var(--pure-white) 100%);color:var(--text-primary);backdrop-filter:blur(10px)}.portfolio-body:not(.dark-theme) .portfolio-footer{background:linear-gradient(135deg,rgba(255,255,255,0.95) 0,rgba(248,250,252,0.9) 50%,rgba(241,245,249,0.85) 100%);color:var(--space-gray-dark);box-shadow:0 -8px 30px rgba(0,0,0,0.08),0 0 50px rgba(59,130,246,0.04);border:1px solid rgba(148,163,184,0.1);position:relative;overflow:hidden}.portfolio-body:not(.dark-theme) .portfolio-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0,var(--space-blue-medium) 50%,transparent 100%);z-index:1}.portfolio-body:not(.dark-theme) .portfolio-footer h3{color:var(--space-black);background:linear-gradient(135deg,var(--space-black) 0,var(--space-blue-deep) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative;z-index:2}.portfolio-body:not(.dark-theme) .portfolio-footer p{color:var(--space-gray-dark);position:relative;z-index:2}.portfolio-body:not(.dark-theme) .portfolio-footer a{color:var(--space-blue-primary);position:relative;z-index:2}.portfolio-body:not(.dark-theme) .portfolio-footer a:hover{color:var(--space-blue-deep);text-shadow:0 2px 8px rgba(59,130,246,0.2)}.portfolio-footer h3{font-size:1.5rem;margin-bottom:1rem;font-weight:var(--font-weight-bold)}.footer-content{max-width:1200px;margin:0 auto;padding:0 var(--footer-padding-horizontal)}.footer-main{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;padding:var(--footer-padding-vertical) 0}.footer-section{display:flex;flex-direction:column;gap:1rem}.footer-about p{line-height:1.6;opacity:.9}.contact-item{display:flex;align-items:center;gap:1rem;padding:.75rem;border-radius:8px;transition:all .3s ease}.contact-item:hover{background:rgba(59,130,246,0.05);transform:translateX(5px)}.contact-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--space-blue-pale),var(--space-blue-light));flex-shrink:0}.contact-icon img{width:20px;height:20px;filter:brightness(0.8)}.contact-info{display:flex;flex-direction:column;gap:.25rem}.contact-label{font-size:.875rem;font-weight:var(--font-weight-bold);color:var(--space-blue-primary);opacity:.8}.contact-link{text-decoration:none;color:var(--text-primary);font-weight:var(--font-weight-medium);transition:all .3s ease}.contact-link:hover{color:var(--space-blue-primary);text-decoration:underline}.social-links{display:flex;flex-direction:column;gap:1rem}.social-link{display:flex;align-items:center;gap:1rem;padding:.75rem;border-radius:8px;text-decoration:none;color:var(--text-primary);transition:all .3s ease;border:1px solid transparent}.social-link:hover{background:rgba(59,130,246,0.05);border-color:var(--space-blue-pale);transform:translateY(-2px);box-shadow:0 4px 15px rgba(59,130,246,0.1)}.social-link img{width:32px;height:32px;border-radius:4px;transition:transform .3s ease}.social-link:hover img{transform:scale(1.1)}.social-link span{font-weight:var(--font-weight-medium)}.footer-bottom{border-top:1px solid rgba(148,163,184,0.2);padding:1.5rem 0;text-align:center}.footer-copyright{display:flex;flex-direction:column;gap:.5rem;align-items:center}.footer-copyright p{margin:0;font-size:.875rem;opacity:.8}.footer-credits{font-size:.875rem;color:var(--space-blue-primary);font-weight:var(--font-weight-medium)}.flask-logo{width:70px;height:30px;vertical-align:middle;margin-left:.5rem;filter:brightness(0.8);position:relative}.dark-theme .portfolio-footer{background:linear-gradient(135deg,rgba(31,41,55,0.9) 0,rgba(17,24,39,0.95) 50%,rgba(59,130,246,0.05) 100%);color:var(--text-white);border:1px solid rgba(59,130,246,0.2);box-shadow:0 -8px 32px var(--shadow-cosmic)}.dark-theme .portfolio-footer h3{color:var(--space-blue-light);text-shadow:0 0 15px rgba(96,165,250,0.2)}.dark-theme .portfolio-footer p{color:var(--text-white);opacity:.9}.dark-theme .portfolio-footer a{color:var(--space-blue-light)}.dark-theme .portfolio-footer a:hover{color:var(--space-white);text-shadow:0 0 10px rgba(147,197,253,0.5)}.dark-theme .contact-item:hover{background:rgba(59,130,246,0.1)}.dark-theme .social-link:hover{background:rgba(59,130,246,0.1);border-color:var(--space-blue-medium)}.dark-theme .footer-bottom{border-top-color:rgba(59,130,246,0.3)}.dark-theme .flask-logo{filter:invert(100%)}@media(max-width:768px){.footer-main{grid-template-columns:1fr;gap:2rem}.footer-copyright{flex-direction:column;text-align:center}.social-links{flex-direction:row;flex-wrap:wrap;justify-content:center}}.portfolio-body:not(.dark-theme) .infos{background:linear-gradient(135deg,rgba(255,255,255,0.95) 0,rgba(248,250,252,0.9) 50%,rgba(241,245,249,0.85) 100%);border:1px solid rgba(148,163,184,0.1);box-shadow:0 4px 20px rgba(0,0,0,0.05),0 0 40px rgba(59,130,246,0.02);backdrop-filter:blur(10px);position:relative;overflow:hidden}.portfolio-body:not(.dark-theme) .infos p{color:var(--space-gray-dark);opacity:.9;position:relative;z-index:2}.portfolio-body:not(.dark-theme) .about,.portfolio-body:not(.dark-theme) .projects-preview,.portfolio-body:not(.dark-theme) .contact-cta{background:linear-gradient(135deg,rgba(255,255,255,0.9) 0,rgba(248,250,252,0.85) 50%,rgba(241,245,249,0.8) 100%);border:1px solid rgba(148,163,184,0.08);box-shadow:0 6px 25px rgba(0,0,0,0.06),0 0 50px rgba(59,130,246,0.03);backdrop-filter:blur(12px);position:relative;overflow:hidden}.portfolio-body:not(.dark-theme) .about p{color:var(--space-gray-dark);opacity:.95;position:relative;z-index:2;line-height:1.7}.portfolio-body:not(.dark-theme) .skills{background:linear-gradient(135deg,rgba(241,245,249,0.9) 0,rgba(248,250,252,0.85) 50%,rgba(255,255,255,0.8) 100%);border:1px solid rgba(148,163,184,0.12);box-shadow:0 8px 30px rgba(0,0,0,0.08),0 0 60px rgba(59,130,246,0.04);position:relative;overflow:hidden}.portfolio-body:not(.dark-theme) .skills img{filter:drop-shadow(0 4px 10px rgba(59,130,246,0.1));transition:all .4s cubic-bezier(0.175,0.885,0.32,1.275);position:relative;z-index:2}.portfolio-body:not(.dark-theme) .skills img:hover{filter:drop-shadow(0 8px 20px rgba(59,130,246,0.25)) brightness(1.1);transform:scale(1.1) rotate(5deg)}.portfolio-body:not(.dark-theme) .skill-tag{color:var(--space-gray-600)}.portfolio-body:not(.dark-theme) .skill-tag:hover{color:var(--space-blue-deep)}.portfolio-body:not(.dark-theme) .education{background:linear-gradient(135deg,rgba(255,255,255,0.9) 0,rgba(248,250,252,0.85) 50%,rgba(241,245,249,0.8) 100%);border:1px solid rgba(148,163,184,0.08);box-shadow:0 6px 25px rgba(0,0,0,0.06),0 0 50px rgba(59,130,246,0.03)}.portfolio-body:not(.dark-theme) .about h2,.portfolio-body:not(.dark-theme) .skills h2,.portfolio-body:not(.dark-theme) .projects-preview h2,.portfolio-body:not(.dark-theme) .experience h2,.portfolio-body:not(.dark-theme) .education h2,.portfolio-body:not(.dark-theme) .contact-cta h2{color:var(--space-black)}.portfolio-body:not(.dark-theme) .project{background:linear-gradient(135deg,rgba(255,255,255,0.9) 0,rgba(248,250,252,0.85) 50%,rgba(241,245,249,0.8) 100%);color:var(--space-black);border:1px solid rgba(148,163,184,0.12);box-shadow:0 6px 25px rgba(0,0,0,0.06)}.portfolio-body:not(.dark-theme) .project-name{color:var(--space-black)}.portfolio-body:not(.dark-theme) .project-desc{color:var(--space-gray-dark)}.dark-theme .infos{background:linear-gradient(135deg,rgba(31,41,55,0.95) 0,rgba(17,24,39,0.98) 50%,rgba(0,71,171,0.1) 100%);color:var(--text-white);border:2px solid var(--space-blue-medium);box-shadow:0 8px 32px var(--shadow-cosmic),0 0 60px rgba(96,165,250,0.15);backdrop-filter:blur(20px);position:relative;z-index:1;overflow:hidden}.dark-theme .infos p{color:var(--text-white);opacity:.95;position:relative;z-index:2}.dark-theme .hero-kicker{color:var(--pure-white)!important}.dark-theme .hero-proof{border-color:rgba(96,165,250,0.22);background:rgba(96,165,250,0.18)}.dark-theme .hero-proof div{background:rgba(15,23,42,0.72)}.dark-theme .hero-proof strong{color:var(--space-blue-light)}.dark-theme .hero-proof span{color:var(--space-gray-200)}.dark-theme .about,.dark-theme .projects-preview,.dark-theme .contact-cta{background:linear-gradient(135deg,rgba(31,41,55,0.9) 0,rgba(17,24,39,0.95) 50%,rgba(59,130,246,0.05) 100%);color:var(--text-white);border:1px solid rgba(59,130,246,0.2);box-shadow:0 8px 32px var(--shadow-cosmic);backdrop-filter:blur(15px);position:relative;z-index:1}.dark-theme .about p{color:var(--space-gray-200)!important;opacity:1;position:relative;z-index:2;line-height:1.7}.dark-theme .about h2,.dark-theme .skills h2,.dark-theme .projects-preview h2,.dark-theme .experience h2,.dark-theme .education h2,.dark-theme .contact-cta h2{color:var(--space-blue-light);text-shadow:0 0 15px rgba(96,165,250,0.2)}.dark-theme .about h2::after,.dark-theme .skills h2::after,.dark-theme .projects-preview h2::after,.dark-theme .experience h2::after,.dark-theme .education h2::after,.dark-theme .contact-cta h2::after{background:linear-gradient(90deg,var(--space-blue-light) 0,var(--space-blue-medium) 100%)}.dark-theme .skills{background:linear-gradient(135deg,var(--space-gray-800) 0,var(--space-gray-700) 50%,rgba(0,71,171,0.1) 100%);color:var(--text-white);border:1px solid var(--space-blue-medium);box-shadow:0 8px 32px var(--shadow-cosmic);backdrop-filter:blur(15px);transition:all .6s ease;position:relative;z-index:1}.dark-theme .skill-tag{color:var(--space-gray-400)}.dark-theme .skill-tag:hover{color:var(--space-blue-light)}.dark-theme .experience{background:linear-gradient(135deg,rgba(31,41,55,0.9) 0,rgba(17,24,39,0.95) 50%,rgba(59,130,246,0.05) 100%);color:var(--text-white);border:1px solid rgba(59,130,246,0.2);box-shadow:0 8px 32px var(--shadow-cosmic);backdrop-filter:blur(15px)}.dark-theme .timeline::before{background:linear-gradient(180deg,var(--space-blue-light) 0,var(--space-blue-medium) 50%,var(--space-blue-deep) 100%);box-shadow:0 0 15px rgba(96,165,250,0.4)}.dark-theme .timeline-item::before{background:var(--space-blue-light);border-color:var(--space-gray-800);box-shadow:0 0 20px rgba(96,165,250,0.6)}.dark-theme .timeline-date{background:var(--space-blue-primary);color:var(--pure-white);border-color:var(--space-blue-medium);box-shadow:0 4px 15px rgba(59,130,246,0.3)}.dark-theme .timeline-content{background:var(--space-gray-800);border-left:4px solid var(--space-blue-light);box-shadow:0 6px 20px rgba(0,0,0,0.5)}.dark-theme .timeline-content h3{color:var(--space-blue-light)}.dark-theme .timeline-content h4{color:var(--pure-white)}.dark-theme .timeline-content p{color:var(--space-gray-200)}.dark-theme .timeline-placeholder .timeline-content{border-left-color:var(--space-gray-600);background:linear-gradient(135deg,rgba(55,65,81,0.8) 0,rgba(31,41,55,0.7) 100%)}.dark-theme .timeline-placeholder .timeline-content h3{color:var(--space-gray-400)}.dark-theme .timeline-placeholder::before{background:var(--space-gray-600);border-color:var(--space-gray-700)}.dark-theme .education{background:linear-gradient(135deg,rgba(31,41,55,0.9) 0,rgba(17,24,39,0.95) 50%,rgba(59,130,246,0.05) 100%);color:var(--text-white);border:1px solid rgba(59,130,246,0.2);box-shadow:0 8px 32px var(--shadow-cosmic);backdrop-filter:blur(15px)}.dark-theme .education-item{background:var(--space-gray-800);border-left-color:var(--space-blue-light);box-shadow:0 6px 20px rgba(0,0,0,0.5)}.dark-theme .education-content h3{color:var(--space-blue-light)}.dark-theme .education-content h4{color:var(--pure-white)}.dark-theme .education-content p{color:var(--space-gray-200)}.dark-theme .education-period{background:var(--space-blue-primary);color:var(--pure-white)}.dark-theme .education-placeholder{border-left-color:var(--space-gray-600)}.dark-theme .education-placeholder .education-item{background:linear-gradient(135deg,rgba(55,65,81,0.8) 0,rgba(31,41,55,0.7) 100%)}.dark-theme .education-placeholder .education-content h3{color:var(--space-gray-400)}@import url("./variables.css");@import url("./base.css");@import url("./components.css");@import url("./sections.css");@import url("./skills.css");@import url("./timeline.css");@import url("./footer.css");@import url("./themes.css");.infos,.about,.skills,.projects-preview,.experience,.education,.contact-cta{padding:var(--section-spacing-top) var(--content-padding-x) var(--section-spacing-bottom);max-width:var(--content-max-width);margin:0 auto var(--space-5xl) auto;transition:opacity .6s ease,transform .6s ease;border-radius:14px;box-shadow:none;backdrop-filter:blur(12px);position:relative;overflow:hidden}.infos,.about,.projects-preview,.experience,.education,.contact-cta{background:linear-gradient(135deg,rgba(255,255,255,0.76) 0,rgba(247,249,251,0.64) 100%);border:1px solid rgba(15,23,42,0.07)}.infos{min-height:min(780px,calc(100dvh - 6rem));margin-top:var(--space-xl)}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{*{background:transparent!important;color:black!important;box-shadow:none!important;text-shadow:none!important}.skills,.experience,.education{break-inside:avoid}}