:root{--primary-color: #2c3e50;--accent-color: #3498db;--text-color: #333;--background-color: #fff;--light-gray: #f8f9fa;--border-color: #e9ecef;--dark-gray: #666;--header-text-color: #fff;--secondary-text-color: #666;--primary-text-color: #333;--link-bg-color: #f0f0f0;--link-text-color: #555;--link-hover-bg-color: #e0e0e0;--abstract-bg-color: #f5f5f5;--code-bg-color: #efefef;--button-bg-color: #f0f0f0;--button-hover-bg-color: #e0e0e0;--pdf-bg-color: #fee6e3;--pdf-text-color: #d33a2c;--pdf-hover-bg-color: #fdd8d6}html[data-theme="dark"]{--primary-color: #1a2530;--accent-color: #61dafb;--text-color: #e6e6e6;--background-color: #121212;--light-gray: #2a2a2a;--border-color: #3a3a3a;--dark-gray: #aaa;--header-text-color: #e6e6e6;--secondary-text-color: #bbb;--primary-text-color: #eee;--link-bg-color: #333;--link-text-color: #ddd;--link-hover-bg-color: #444;--abstract-bg-color: #292929;--code-bg-color: #222;--button-bg-color: #333;--button-hover-bg-color: #444;--pdf-bg-color: #4b2421;--pdf-text-color: #ff8a80;--pdf-hover-bg-color: #613530}html{transition:color 0.3s ease, background-color 0.3s ease;scroll-padding-top:70px}body{font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;line-height:1.6;color:var(--text-color);background-color:var(--background-color);margin:0;padding:0;transition:color 0.3s ease, background-color 0.3s ease;overflow-x:hidden}.container{width:100%;max-width:1000px;margin:0 auto;padding:0 2rem}.site-content{width:100%;max-width:1000px;margin:0 auto;padding:0 2rem;box-sizing:border-box}.site-content>*{max-width:100%}a{color:var(--accent-color);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin-top:2rem;margin-bottom:1rem;color:var(--text-color)}p{margin-bottom:1rem}img{max-width:100%;height:auto}header{background-color:rgba(255,255,255,0.1);color:var(--text-color);padding:1rem 0;transition:all 0.3s ease;width:100%;position:sticky;top:0;z-index:1000;border-bottom:1px solid var(--border-color);backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px)}html[data-theme="dark"] header{background-color:rgba(20,20,20,0.3)}header.header-scrolled{padding:.5rem 0;background-color:rgba(255,255,255,0.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}html[data-theme="dark"] header.header-scrolled{background-color:rgba(20,20,20,0.7)}header nav{display:flex;justify-content:space-between;align-items:center;max-width:1000px;margin:0 auto;padding:0 2rem}.home-page header nav h1:empty{display:none}.home-page header nav{justify-content:flex-end}header nav h1{margin:0}header nav h1 a{color:var(--text-color);text-decoration:none;transition:opacity 0.2s ease}header nav h1 a .firstname{font-weight:700}header nav h1 a .lastname{font-weight:400}header nav h1 a:hover{opacity:0.8}header nav ul{display:flex;list-style:none;margin:0;padding:0;align-items:center}header nav ul li{margin-left:2rem}header nav ul li a{color:var(--text-color);text-decoration:none;position:relative;transition:opacity 0.2s ease;padding:0.3rem 0}header nav ul li a:hover{opacity:0.8;text-decoration:none}header nav ul li a::after{content:'';position:absolute;width:0;height:2px;bottom:0;left:0;background-color:var(--accent-color);transition:width 0.3s ease}header nav ul li a:hover::after{width:100%}main{padding:3rem 0;width:100%;box-sizing:border-box}footer{margin-top:3rem;padding:3rem 0;background-color:var(--light-gray);text-align:center;color:var(--dark-gray);transition:background-color 0.3s ease;width:100%}footer .footer-content{max-width:1000px;margin:0 auto;padding:0 2rem}@media (max-width: 768px){header{padding:.8rem 0}header.header-scrolled{padding:.6rem 0}header nav{flex-direction:column;align-items:flex-start;padding:0 1rem}header nav h1{margin-bottom:.5rem}header nav ul{margin-top:.5rem;flex-wrap:wrap;width:100%}header nav ul li{margin:0 1rem .5rem 0}.site-content{padding:0 1rem}footer .footer-content{padding:0 1rem}}.home{width:100%}.hero-section{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 0;margin-bottom:2rem;width:100%}.hero-section h1{font-size:2.5rem;margin-bottom:1rem;color:var(--text-color)}.hero-section h1 .firstname{font-weight:700}.hero-section h1 .lastname{font-weight:400}.hero-section p{margin:0 0 1.5rem;font-size:1.1rem;line-height:1.6}.hero-content{width:100%}.about-section{width:100%;margin:0 auto 4rem;padding:0}.news-section{width:100%;margin:0 auto 4rem;padding:0}.news-section h2{margin-bottom:1.5rem;color:var(--text-color);position:relative;padding-bottom:0.5rem}.news-section h2::after{content:'';position:absolute;bottom:0;left:0;width:60px;height:3px;background-color:var(--accent-color)}.news-timeline{position:relative;padding-left:2rem;width:100%;box-sizing:border-box}.news-timeline::before{content:'';position:absolute;top:0;left:0;width:2px;height:100%;background-color:var(--border-color)}.news-item{position:relative;margin-bottom:2rem;padding-bottom:2rem}.news-item:not(:last-child){border-bottom:1px solid var(--border-color)}.news-date{position:absolute;left:-2rem;display:flex;align-items:center;justify-content:center;width:3rem;transform:translateX(-50%);background-color:var(--accent-color);color:white;padding:0.4rem;border-radius:4px;font-size:0.8rem;font-weight:bold;text-align:center;z-index:1}.news-date-inner{width:100%}.news-month{display:block;font-size:0.7rem;text-transform:uppercase}.news-day{display:block;font-size:1.1rem;font-weight:bold;line-height:1}.news-year{display:block;font-size:0.7rem}.news-content{padding-left:1rem}.news-excerpt{margin:0;line-height:1.6;color:var(--text-color)}.news-excerpt a{color:var(--accent-color);text-decoration:none;transition:all 0.2s ease}.news-excerpt a:hover{text-decoration:underline}.news-excerpt p{margin-top:0;margin-bottom:0.8rem}.news-excerpt p:last-child{margin-bottom:0}.view-all-news{margin-top:2rem;text-align:center}.view-all-button{display:inline-block;padding:0.6rem 1.5rem;background-color:var(--background-color);color:var(--accent-color);border:1px solid var(--border-color);border-radius:30px;text-decoration:none;font-size:0.9rem;transition:all 0.3s ease;box-shadow:0 1px 3px rgba(0,0,0,0.08)}.view-all-button:hover{background-color:var(--light-gray);border-color:var(--accent-color);transform:translateY(-1px);box-shadow:0 3px 6px rgba(0,0,0,0.1)}.social-section{display:flex;flex-direction:column;align-items:center;width:100%;margin:0 auto 4rem;padding:0}.social-heading{margin-bottom:1.5rem;text-align:center}.social-heading h2{color:var(--text-color)}.social-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}.social-button{display:flex;align-items:center;justify-content:center;padding:0.8rem 1.2rem;background-color:var(--background-color);color:var(--accent-color);border:2px solid var(--accent-color);border-radius:30px;text-decoration:none;font-weight:500;transition:all 0.3s ease;box-shadow:0 3px 10px rgba(0,0,0,0.1)}.social-button:hover{background-color:var(--accent-color);color:var(--background-color);transform:translateY(-3px);box-shadow:0 5px 15px rgba(0,0,0,0.15)}.social-button svg{width:20px;height:20px;margin-right:8px}.social-button.scholar{color:#4285f4;border-color:#4285f4}.social-button.scholar:hover{background-color:#4285f4;color:white}.social-button.github{color:#333;border-color:#333}.social-button.github:hover{background-color:#333;color:white}.social-button.email{color:#ea4335;border-color:#ea4335}.social-button.email:hover{background-color:#ea4335;color:white}@media (min-width: 768px){.hero-section{flex-direction:row;text-align:left;justify-content:space-between;gap:3rem;padding:4rem 0}.hero-content{flex-grow:1}.hero-section p{margin:0 0 1.5rem}}@media (max-width: 767px){.social-buttons{flex-direction:column;align-items:center}.social-button{width:80%;justify-content:center}}.news-archive{width:100%;position:relative;padding-left:2rem}.news-archive::before{content:'';position:absolute;top:0;left:0;width:2px;height:100%;background-color:var(--border-color)}.news-archive .news-item{position:relative;margin-bottom:2rem;padding-bottom:2rem}.news-archive .news-item:not(:last-child){border-bottom:1px solid var(--border-color)}.news-archive .news-date{position:absolute;left:-2rem;display:flex;align-items:center;justify-content:center;width:3rem;transform:translateX(-50%);background-color:var(--accent-color);color:white;padding:0.4rem;border-radius:4px;font-size:0.8rem;font-weight:bold;text-align:center;z-index:1}.news-archive .news-date-inner{width:100%}.news-archive .news-month{display:block;font-size:0.7rem;text-transform:uppercase}.news-archive .news-day{display:block;font-size:1.1rem;font-weight:bold;line-height:1}.news-archive .news-year{display:block;font-size:0.7rem}.news-archive .news-content{padding-left:1rem}.news-archive .news-excerpt{margin:0;line-height:1.6;color:var(--text-color)}.news-archive .news-excerpt a{color:var(--accent-color);text-decoration:none;transition:all 0.2s ease}.news-archive .news-excerpt a:hover{text-decoration:underline}.news-archive .news-excerpt p{margin-top:0;margin-bottom:0.8rem}.news-archive .news-excerpt p:last-child{margin-bottom:0}.section-tabs{display:flex;margin-bottom:2rem;border-bottom:2px solid var(--border-color)}.section-tab{padding:0.75rem 1.5rem;background:none;border:none;font-size:1.1rem;font-weight:600;color:var(--secondary-text-color);cursor:pointer;transition:all 0.2s;border-bottom:3px solid transparent;margin-bottom:-2px}.section-tab:hover{color:var(--primary-text-color, #333)}.section-tab.active{color:var(--accent-color, #0366d6);border-bottom-color:var(--accent-color, #0366d6)}.publication-section{display:none}.publication-section.active{display:block}.section-title{font-size:1.8rem;margin-bottom:1.5rem}.year-section{margin-bottom:2rem}.year{font-size:1.4rem;border-bottom:1px solid var(--border-color);padding-bottom:0.5rem;margin-bottom:1rem}.publication{margin-bottom:1.5rem;padding-left:1rem;border-left:3px solid var(--border-color);padding-bottom:0.5rem}.publication-title{font-size:1.1rem;font-weight:bold;margin-bottom:0.3rem}.publication-authors{margin-bottom:0.3rem}.publication-venue{margin-bottom:0.5rem;color:var(--secondary-text-color)}.publication-links{display:flex;flex-wrap:wrap;gap:0.8rem;margin-top:0.5rem}.publication-links a{display:inline-block;font-size:0.85rem;padding:0.25rem 0.5rem;border-radius:3px;background-color:var(--link-bg-color, #f0f0f0);color:var(--link-text-color, #555);text-decoration:none;transition:all 0.2s}.publication-links a:hover{background-color:var(--link-hover-bg-color, #e0e0e0)}.publication-links .pdf-link{background-color:var(--pdf-bg-color, #fee6e3) !important;color:var(--pdf-text-color, #d33a2c) !important}.publication-links .pdf-link:hover{background-color:var(--pdf-hover-bg-color, #fdd8d6) !important}.abstract-toggle,.bibtex-toggle{cursor:pointer}.abstract-content,.bibtex-content{margin-top:0.5rem;margin-bottom:0.5rem;padding:0.75rem;background-color:var(--abstract-bg-color, #f5f5f5);border-radius:4px;font-size:0.9rem;line-height:1.5}.bibtex-content pre{margin:0;padding:0.5rem;background-color:var(--code-bg-color, #efefef);border-radius:3px;overflow-x:auto;font-family:monospace;font-size:0.85rem;white-space:pre-wrap}.copy-bibtex{display:block;margin-top:0.5rem;padding:0.25rem 0.5rem;border:1px solid var(--border-color, #ddd);border-radius:3px;background-color:var(--button-bg-color, #f0f0f0);cursor:pointer;font-size:0.8rem;transition:all 0.2s}.copy-bibtex:hover{background-color:var(--button-hover-bg-color, #e0e0e0)}#album-container{position:relative;width:100%;margin:2rem 0;padding:20px 0}.album-grid{display:grid;grid-template-columns:repeat(4, 1fr);grid-gap:20px;width:95%;max-width:1200px;margin:0 auto;padding:20px 0}.pagination-container{display:flex;justify-content:center;align-items:center;margin-top:2rem;gap:1rem}.library-item{position:relative;width:100%;aspect-ratio:1/1;transition:transform 0.3s ease, box-shadow 0.3s ease;border-radius:8px;overflow:hidden;box-shadow:0 2px 5px rgba(0,0,0,0.2);cursor:pointer;border:1px solid rgba(255,255,255,0.1);border-bottom:1px solid rgba(0,0,0,0.1)}.library-item:hover{transform:scale(1.05);box-shadow:0 8px 15px rgba(0,0,0,0.3);z-index:10}.library-item:hover .album-overlay{opacity:1;transform:translateY(0)}.pagination-control{display:flex;justify-content:center;align-items:center;width:40px;height:40px;background-color:var(--accent-color);color:white;border-radius:50%;cursor:pointer;font-size:24px;box-shadow:0 2px 5px rgba(0,0,0,0.2);transition:background-color 0.2s ease, transform 0.2s ease;user-select:none}.pagination-control:hover{background-color:var(--primary-color);transform:scale(1.1)}.pagination-control.disabled{opacity:0.5;cursor:not-allowed;background-color:#ccc}html[data-theme="dark"] .pagination-control.disabled{background-color:#555}.pagination-info{font-size:16px;font-weight:500}.image-container{position:relative;width:100%;height:100%;background-color:rgba(0,0,0,0.05)}.image-container img{width:100%;height:100%;object-fit:cover;transition:transform 0.5s ease, opacity 0.3s ease;opacity:0}.image-container img.loaded{opacity:1;background-color:transparent}.image-container::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}.image-container.loaded::before{display:none !important}@keyframes spin{0%{transform:translate(-50%, -50%) rotate(0deg)}100%{transform:translate(-50%, -50%) rotate(360deg)}}.album-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg, rgba(0,0,0,0.85), rgba(0,0,0,0.7));color:white;opacity:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0.8rem;box-sizing:border-box;backdrop-filter:blur(3px);text-align:center;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 250 250' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");background-blend-mode:overlay;transform:translateY(5px);transition:opacity 0.35s ease, transform 0.35s ease}.album-overlay h3{margin:0 0 0.3rem 0;font-size:0.9rem;color:white;text-shadow:0 1px 3px rgba(0,0,0,0.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:95%}.album-overlay .artist{margin:0 0 0.2rem 0;font-weight:bold;font-size:0.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:95%}.album-overlay .year{margin:0 0 0.3rem 0;font-size:0.7rem;opacity:0.8}html[data-theme="dark"] .album-overlay{background:linear-gradient(to top, rgba(0,0,0,0.95), rgba(0,0,0,0.8))}.listen-button{display:inline-block;background-color:var(--accent-color);color:white;padding:0.2rem 0.6rem;border-radius:4px;text-decoration:none;font-size:0.7rem;transition:background-color 0.2s ease}.listen-button:hover{background-color:var(--primary-color)}@media (max-width: 1200px){.album-grid{grid-template-columns:repeat(3, 1fr)}}@media (max-width: 768px){.album-grid{grid-template-columns:repeat(2, 1fr);grid-gap:15px}.album-overlay h3{font-size:0.8rem}.album-overlay .artist{font-size:0.75rem}.album-overlay .year{font-size:0.65rem}.pagination-control{width:36px;height:36px;font-size:20px}}@media (max-width: 480px){.album-grid{grid-template-columns:repeat(2, 1fr);grid-gap:10px}.album-overlay h3{font-size:0.7rem;margin-bottom:0.2rem}.album-overlay .artist{font-size:0.65rem;margin-bottom:0.1rem}.album-overlay .year{font-size:0.6rem;margin-bottom:0.2rem}.listen-button{padding:0.15rem 0.5rem;font-size:0.65rem}.pagination-control{width:32px;height:32px;font-size:18px}.pagination-info{font-size:14px}}.cv-container{width:100%;margin:0 auto;padding:0}.cv-container h1{color:var(--text-color);margin-bottom:1.5rem}.cv-section{margin-bottom:2.5rem}.cv-section-title{color:var(--text-color);position:relative;padding-bottom:0.7rem;margin-bottom:1.25rem;font-size:1.5rem}.cv-section-title::after{content:'';position:absolute;left:0;bottom:0;width:50px;height:3px;background-color:var(--accent-color)}.cv-entry{margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border-color);display:flex;gap:1.5rem;align-items:flex-start}.cv-entry:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.cv-entry-content{flex:1}.cv-entry-image{flex-shrink:0;width:70px;height:70px;overflow:hidden;border-radius:8px;border:1px solid var(--border-color);background-color:#ffffff !important;display:flex;align-items:center;justify-content:center;padding:0.5rem;box-shadow:0 2px 6px rgba(0,0,0,0.1);position:relative;z-index:1}.cv-entry-image img{max-width:100%;max-height:100%;object-fit:contain;background-color:#ffffff}[data-theme="dark"] .cv-entry-image,html[data-theme="dark"] .cv-entry-image,body[data-theme="dark"] .cv-entry-image,html[data-theme="dark"] body .cv-container .cv-section .cv-entry .cv-entry-image{background-color:#ffffff !important;border-color:#aaaaaa !important}.cv-entry-header{margin-bottom:0.5rem}.cv-entry-title{font-weight:bold;font-size:1.1rem;color:var(--text-color)}.cv-entry-company{font-style:italic;color:var(--dark-gray);margin-top:0.2rem}.cv-entry-period{font-size:0.9rem;color:var(--accent-color);margin-bottom:0.8rem;font-weight:500}.cv-date{display:inline-block}.cv-entry-description{color:var(--text-color);line-height:1.6}.languages-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));gap:1rem}.language-item{display:flex;align-items:center;gap:0.6rem;padding:0.7rem;background-color:var(--light-gray);border-radius:6px;transition:transform 0.2s ease, box-shadow 0.2s ease;box-shadow:0 1px 3px rgba(0,0,0,0.08)}.language-item:hover{transform:translateY(-2px);box-shadow:0 3px 8px rgba(0,0,0,0.1)}.language-flag{font-size:1.5rem;line-height:1;flex-shrink:0}.language-details{flex:1}.language-name{font-weight:600;color:var(--text-color);font-size:0.95rem}.language-proficiency{color:var(--dark-gray);font-size:0.8rem;margin-top:0.1rem}@media (max-width: 768px){.languages-grid{grid-template-columns:repeat(auto-fill, minmax(140px, 1fr))}.cv-entry-header{flex-direction:column}.cv-entry{flex-direction:row-reverse}.cv-entry-image{width:60px;height:60px}}@media (max-width: 480px){.languages-grid{grid-template-columns:repeat(2, 1fr)}.cv-entry{gap:1rem}.cv-entry-image{width:50px;height:50px}}@media (max-width: 360px){.languages-grid{grid-template-columns:1fr}}.profile-image{width:180px !important;height:180px !important;border-radius:50% !important;object-fit:cover !important;border:none !important;box-shadow:none !important;transition:none !important;transform:none !important}.profile-image:hover{transform:none !important;box-shadow:none !important;border:none !important}.profile-container{margin-bottom:2rem}@media (min-width: 768px){.profile-container{margin-bottom:0;flex-shrink:0}}.theme-toggle{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0.5rem;border-radius:50%;width:36px;height:36px;background-color:rgba(255,255,255,0.25);transition:all 0.3s ease;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,0.3)}.theme-toggle:hover{background-color:rgba(255,255,255,0.35);transform:translateY(-2px)}.theme-toggle:active{transform:translateY(0)}.theme-toggle svg{color:var(--text-color);stroke:var(--text-color);width:20px;height:20px}html[data-theme="dark"] .theme-toggle{background-color:rgba(0,0,0,0.35);border-color:rgba(255,255,255,0.15)}html[data-theme="dark"] .theme-toggle:hover{background-color:rgba(0,0,0,0.45)}
