:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--font-heading: "Syne", sans-serif;--font-body: "Space Grotesk", sans-serif;--color-bg: #f8f7fc;--color-bg-secondary: #ffffff;--color-text: #1a1625;--color-accent: #7B2CBF;--color-secondary: #9D4EDD;--color-purple-light: #E0AAFF;--color-bg-gradient-start: #ffffff;--color-bg-gradient-end: #f8f7fc;--color-overlay-gradient: rgba(123, 44, 191, .2)}[data-theme=dark]{--color-bg: #0a0814;--color-bg-secondary: #13111d;--color-text: #ffffff;--color-accent: #9D4EDD;--color-secondary: #E0AAFF;--color-purple-light: #7B2CBF;--color-bg-gradient-start: #0a0814;--color-bg-gradient-end: #13111d;--color-overlay-gradient: rgba(157, 78, 221, .2);--color-navbar-bg: rgba(0, 0, 0, .8)}*{box-sizing:border-box;margin:0;padding:0}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg-gradient-start);color:var(--color-text);font-family:var(--font-body);position:relative;overscroll-behavior:none}body:before{content:"";position:fixed;inset:0;background:linear-gradient(to bottom,var(--color-bg-gradient-start),var(--color-bg-gradient-end));z-index:-1}.gradient-overlay{position:fixed;inset:0;background:linear-gradient(to bottom,transparent,var(--color-overlay-gradient));pointer-events:none;z-index:1;transition:opacity .3s ease}#root{flex:1;display:flex;flex-direction:column;position:relative;z-index:2;background:transparent}h1{font-size:3.2em;line-height:1.1}button{border-radius:0;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.page-transition-enter{opacity:0;transform:translateY(20px)}.page-transition-enter-active{opacity:1;transform:translateY(0);transition:opacity .5s,transform .5s}.page-transition-exit{opacity:1}.page-transition-exit-active{opacity:0;transition:opacity .5s}#root{max-width:1280px;margin:0 auto;padding:2rem;width:100%;min-height:100vh}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.navbar{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;margin:0 auto 3rem;width:100%;max-width:1200px;font-family:var(--font-heading);backdrop-filter:blur(10px);background:var(--color-navbar-bg);border-bottom:1px solid var(--color-accent);position:sticky;top:0;z-index:100}.nav-brand{font-size:2rem;font-weight:700;font-family:var(--font-heading);background:linear-gradient(45deg,var(--color-accent),var(--color-secondary));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;transition:transform .3s ease}.nav-brand:hover{transform:scale(1.05)}.nav-links{display:flex;gap:2rem}.nav-links button{background:none;border:none;color:var(--color-text);font-family:var(--font-heading);font-size:1rem;padding:.5rem 1rem;position:relative;transition:color .3s ease}.nav-links button:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--color-accent);transition:width .3s ease}.nav-links button:hover:after,.nav-links button.active:after{width:100%}.nav-links button:hover{color:var(--color-accent)}.nav-links button.active{border-bottom:2px solid var(--color-accent)}.projects-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;padding:1rem}.project-card{background:var(--color-card-bg);border-radius:8px;overflow:hidden;box-shadow:0 2px 15px #0000004d;cursor:pointer;display:flex;flex-direction:column;align-items:center;padding:1rem;transition:transform .3s ease,box-shadow .3s ease;position:relative;width:100%;height:auto}.project-card:hover{transform:translateY(-5px);box-shadow:0 5px 25px #9d4edd66}.image-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(110deg,var(--color-bg-secondary) 8%,var(--color-card-bg) 18%,var(--color-bg-secondary) 33%);background-size:200% 100%;animation:shimmer 1.5s linear infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.project-card img,.project-image,.image-placeholder{width:100%;height:auto;object-fit:contain;border-radius:4px;background:var(--color-card-bg)}.project-card img{display:block;max-width:100%;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;transition:transform .3s ease,opacity .3s ease;opacity:1}.project-card img.loaded{opacity:1}.project-card:hover img{transform:scale(1.05)}.project-image{opacity:0;transition:opacity .3s ease;width:100%;height:100%;object-fit:cover}.project-image.loaded{opacity:1}.project-detail{width:100%;max-width:1200px;margin:0 auto;padding:2rem}.back-button{background:none;border:none;color:var(--color-accent);font-family:var(--font-heading);font-size:1.2rem;cursor:pointer;padding:.5rem 1rem;display:flex;align-items:center;gap:.5rem}.detail-image{width:100%;max-width:800px;height:auto;border-radius:8px;margin:2rem auto;display:block;box-shadow:0 2px 20px #7b2cbf1a}.detail-info{max-width:800px;margin:0 auto;padding:2rem;background:var(--color-bg-secondary);border-radius:8px;box-shadow:0 2px 15px #7b2cbf0d}.year{color:var(--color-secondary);font-family:var(--font-heading);margin-bottom:1rem}.description{font-size:1.1rem;line-height:1.6;margin-bottom:2rem}.links{margin-top:2rem;padding-top:1rem;border-top:1px solid rgba(123,44,191,.1)}.links h3{color:var(--color-secondary);margin-bottom:1rem}.links a{display:inline-block;margin-right:1rem;color:var(--color-accent);text-decoration:none;transition:color .3s ease}.links a:hover{color:var(--color-secondary)}.project-gallery{margin-top:4rem}.project-gallery h2{color:var(--color-accent);font-family:var(--font-heading);margin-bottom:2rem;text-align:center}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;padding:1rem;max-width:1200px;margin:0 auto;width:100%}.gallery-image{width:100%;height:auto;border-radius:8px;box-shadow:0 2px 15px #7b2cbf1a;background:var(--color-card-bg)}.not-found{width:100%;max-width:1200px;margin:0 auto;padding:2rem}.not-found-content{text-align:center;padding:4rem 2rem;background:var(--color-bg-secondary);border-radius:8px;box-shadow:0 2px 15px #7b2cbf0d;margin-top:2rem}.not-found-content h2{color:var(--color-accent);font-family:var(--font-heading);margin-bottom:1rem}.not-found-content p{color:var(--color-text);font-size:1.1rem}.footer{margin-top:auto;padding:2rem;text-align:center}.social-links{display:flex;justify-content:center;gap:2rem}.social-link{color:var(--color-text);transition:color .3s ease}.social-link:hover{color:var(--color-accent)}.social-link svg{width:24px;height:24px}@media (max-width: 768px){#root{padding:1rem}.navbar{flex-direction:column;gap:1rem;width:100%;padding:1rem}.nav-links{gap:1rem}.projects-grid{grid-template-columns:1fr;padding:1rem;gap:1.5rem}.project-card{margin:0 auto;max-width:400px;width:100%}.project-content{padding:1rem}.social-links{gap:1.5rem}.gallery-grid{grid-template-columns:1fr;padding:0;gap:1rem}.gallery-image{width:100%;max-width:100%;height:auto}.project-content{padding:.5rem;width:100%;overflow:hidden}.detail-info{padding:1rem;margin:1rem 0;width:auto}}.theme-toggle{background:none;border:none;padding:.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text);transition:transform .3s ease;transform-origin:center}.theme-toggle:hover{transform:scale(1.1);color:var(--color-accent)}.theme-toggle svg{width:24px;height:24px;transition:transform .5s cubic-bezier(.4,0,.2,1)}.theme-toggle:hover svg{transform:rotate(15deg)}.theme-toggle[data-theme=light] svg{transform:rotate(90deg)}.theme-toggle[data-theme=dark] svg{transform:rotate(-90deg)}@media (max-width: 768px){.theme-toggle{bottom:1rem;right:1rem;width:32px;height:32px}.theme-toggle svg{width:20px;height:20px}.nav-controls{flex-direction:column;width:100%;align-items:center}}.theme-transition{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9999;background:#0000004d;opacity:0;transition:opacity .3s ease}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;display:flex;justify-content:center;align-items:center;z-index:1000;backdrop-filter:blur(5px)}.modal-content{max-width:90%;max-height:90vh;object-fit:contain;border-radius:8px;box-shadow:0 5px 30px #0000004d;cursor:zoom-out;transition:transform .3s ease}.modal-close{position:absolute;top:20px;right:30px;font-size:2.5rem;color:#fff;background:none;border:none;cursor:pointer;opacity:.8;transition:opacity .3s ease,transform .3s ease;z-index:1001}.modal-close:hover{opacity:1;transform:scale(1.1)}@media (max-width: 768px){.modal-content{max-width:95%;max-height:80vh}.modal-close{top:10px;right:20px;font-size:2rem}}.kontakt-page{width:100%;max-width:1200px;margin:0 auto;padding:2rem}.kontakt-content{max-width:1000px;margin:0 auto;padding:2rem;background:var(--color-bg-secondary);border-radius:8px;box-shadow:0 2px 15px #7b2cbf0d}.kontakt-content.two-column{display:grid;grid-template-columns:1fr 1fr;gap:3rem}.left-column,.right-column{display:flex;flex-direction:column;gap:2rem}.profile-image{width:100%;max-width:300px;height:300px;margin:2rem auto;border-radius:8px;overflow:hidden}.profile-img{width:100%;height:100%;object-fit:cover;border-radius:8px;transition:transform .3s ease;cursor:pointer;user-select:none;-webkit-user-select:none;-moz-user-select:none;pointer-events:auto}.profile-img:hover{transform:scale(1.03)}.profile-img.clicked{animation:profile-click .3s ease-in-out}@keyframes profile-click{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1)}}.profile-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(45deg,var(--color-accent),var(--color-secondary));color:#fff;font-family:var(--font-heading)}.about-section,.contact-section,.social-section{padding-bottom:2rem}.about-section p{font-size:1.1rem;line-height:1.6;margin-top:1rem}.contact-item{display:flex;align-items:center;margin-top:1rem;gap:1rem}.contact-item svg{width:24px;height:24px;color:var(--color-accent)}.contact-item a{color:var(--color-text);text-decoration:none;transition:color .3s ease}.contact-item a:hover{color:var(--color-accent)}.social-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:1.5rem}.social-item{display:flex;align-items:center;gap:1rem}.social-item svg{width:24px;height:24px;color:var(--color-accent)}.social-item a,.social-item span{color:var(--color-text);text-decoration:none;transition:color .3s ease}.social-item a:hover{color:var(--color-accent)}@media (max-width: 768px){.kontakt-content.two-column{grid-template-columns:1fr;gap:2rem}.kontakt-content{padding:1.5rem}.profile-image{max-width:250px;height:250px}}.easter-egg-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;display:flex;justify-content:center;align-items:center;z-index:2000;backdrop-filter:blur(5px)}.easter-egg-content{position:relative;background:var(--color-bg-secondary);padding:2rem;border-radius:8px;max-width:500px;width:90%;text-align:center;box-shadow:0 0 30px #9d4edd99;overflow:hidden;animation:bounce-in .5s cubic-bezier(.175,.885,.32,1.275)}@keyframes bounce-in{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.05);opacity:1}70%{transform:scale(.9)}to{transform:scale(1)}}.easter-egg-content h2{color:var(--color-accent);margin-bottom:1rem;font-family:var(--font-heading)}.easter-egg-content p{margin-bottom:2rem}.confetti-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;pointer-events:none;z-index:10}.confetti{position:absolute;width:8px;height:16px;background-color:var(--color-accent);opacity:.8;animation:confetti-fall 3s ease-in-out infinite;transform-origin:center}@keyframes confetti-fall{0%{transform:translateY(-100px) translate(0) rotate(0);opacity:1}to{transform:translateY(1000px) translate(100px) rotate(720deg);opacity:0}}.confetti:nth-child(1){left:10%;animation-delay:0s;background-color:#7b2cbf;animation-duration:3s}.confetti:nth-child(2){left:20%;animation-delay:.2s;background-color:#9d4edd;animation-duration:3.2s}.confetti:nth-child(3){left:30%;animation-delay:.4s;background-color:#e0aaff;animation-duration:2.8s}.confetti:nth-child(4){left:40%;animation-delay:.6s;background-color:#c77dff;animation-duration:3.5s}.confetti:nth-child(5){left:50%;animation-delay:.8s;background-color:#5a189a;animation-duration:2.5s}.confetti:nth-child(6){left:60%;animation-delay:1s;background-color:#7b2cbf;animation-duration:3.3s}.confetti:nth-child(7){left:70%;animation-delay:.3s;background-color:#9d4edd;animation-duration:3.1s}.confetti:nth-child(8){left:80%;animation-delay:.5s;background-color:#e0aaff;animation-duration:2.7s}.confetti:nth-child(9){left:90%;animation-delay:.7s;background-color:#c77dff;animation-duration:3.4s}.confetti:nth-child(10){left:15%;animation-delay:.9s;background-color:#5a189a;animation-duration:2.9s}.confetti:nth-child(11){left:25%;animation-delay:.1s;background-color:#7b2cbf;animation-duration:3.7s}.confetti:nth-child(12){left:35%;animation-delay:.3s;background-color:#9d4edd;animation-duration:2.8s}.confetti:nth-child(13){left:45%;animation-delay:.5s;background-color:#e0aaff;animation-duration:3.1s}.confetti:nth-child(14){left:55%;animation-delay:.7s;background-color:#c77dff;animation-duration:2.6s}.confetti:nth-child(15){left:65%;animation-delay:.9s;background-color:#5a189a;animation-duration:3.2s}.confetti:nth-child(16){left:75%;animation-delay:.1s;background-color:#7b2cbf;animation-duration:3s}.confetti:nth-child(17){left:85%;animation-delay:.3s;background-color:#9d4edd;animation-duration:3.4s}.confetti:nth-child(18){left:95%;animation-delay:.5s;background-color:#e0aaff;animation-duration:2.9s}.confetti:nth-child(19){left:5%;animation-delay:.7s;background-color:#c77dff;animation-duration:3.3s}.confetti:nth-child(20){left:15%;animation-delay:.9s;background-color:#5a189a;animation-duration:2.7s}.confetti:nth-child(3n){width:12px;height:12px;border-radius:50%}.confetti:nth-child(3n+1){width:10px;height:20px}.confetti:nth-child(3n+2){width:15px;height:7px;transform:rotate(45deg)}.confetti:nth-child(21){right:10%;animation-delay:.2s;background-color:#7b2cbf;animation-duration:3.2s}.confetti:nth-child(22){right:20%;animation-delay:.4s;background-color:#9d4edd;animation-duration:2.8s}.confetti:nth-child(23){right:30%;animation-delay:.6s;background-color:#e0aaff;animation-duration:3.5s}.confetti:nth-child(24){right:40%;animation-delay:.8s;background-color:#c77dff;animation-duration:2.9s}.confetti:nth-child(25){right:50%;animation-delay:1s;background-color:#5a189a;animation-duration:3.1s}.confetti:nth-child(26){right:60%;animation-delay:.1s;background-color:#7b2cbf;animation-duration:3.3s}.confetti:nth-child(27){right:70%;animation-delay:.3s;background-color:#9d4edd;animation-duration:2.7s}.confetti:nth-child(28){right:80%;animation-delay:.5s;background-color:#e0aaff;animation-duration:3.4s}.confetti:nth-child(29){right:90%;animation-delay:.7s;background-color:#c77dff;animation-duration:2.6s}.confetti:nth-child(30){right:15%;animation-delay:.9s;background-color:#5a189a;animation-duration:3.2s}html{height:100%}body{min-height:100%;margin:0}[data-theme=light]{--color-bg: #f8f7fc;--color-bg-secondary: #ffffff;--color-text: #1a1625;--color-accent: #7B2CBF;--color-secondary: #9D4EDD;--color-purple-light: #E0AAFF;--color-bg-gradient-start: #ffffff;--color-bg-gradient-end: #f8f7fc;--color-overlay-gradient: rgba(123, 44, 191, .2);--color-navbar-bg: rgba(255, 255, 255, .9);--color-card-bg: #ffffff;--color-card-border: #e5e7eb}[data-theme=dark]{--color-bg: #0a0814;--color-bg-secondary: #13111d;--color-text: #ffffff;--color-accent: #9D4EDD;--color-secondary: #E0AAFF;--color-purple-light: #7B2CBF;--color-bg-gradient-start: #0a0814;--color-bg-gradient-end: #13111d;--color-overlay-gradient: rgba(157, 78, 221, .2);--color-card-bg: #0a0814;--color-navbar-bg: rgba(10, 8, 20, .9);--color-card-border: transparent}.nav-controls{display:flex;align-items:center;gap:1rem}.nav-links{display:flex;align-items:center;gap:2rem}.nav-links a,.nav-links button{color:var(--color-text);text-decoration:none;background:none;border:none;font-family:var(--font-heading);font-size:1rem;padding:.5rem 1rem;transition:color .3s ease;cursor:pointer}.nav-links a:hover,.nav-links button:hover{color:var(--color-accent)}.project-card{background:var(--color-bg)!important;border:1px solid var(--color-bg)!important;box-shadow:0 2px 15px #0003!important;border-radius:8px!important}[data-theme=dark] .project-card{background:#000!important;border:1px solid #000000!important;box-shadow:0 2px 15px #00000080!important}[data-theme=light] .project-card{background:#fff!important;border:1px solid #ffffff!important;box-shadow:0 4px 20px #00000014,0 2px 8px #0000000a!important}.project-card:hover{box-shadow:0 5px 25px #9d4edd66!important;border:1px solid var(--color-accent)!important}@media (max-width: 768px){.nav-controls{flex-direction:column;gap:1rem;width:100%;align-items:center}.nav-links{flex-wrap:wrap;gap:1rem;justify-content:center}}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease}.theme-loading *{transition:none!important}.theme-transition{position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--color-bg);z-index:9999;opacity:0;pointer-events:none;transition:opacity .3s ease}.theme-transition.active{opacity:1}
