*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}:root{--color-background: #0D1117;--color-text-primary: #C9D1D9;--color-text-secondary: #8B949E;--color-accent: #00FF9C;--color-accent-rgb: 0, 255, 156;--color-accent-hover: #00E08A;--color-accent-active: #00CC7A;--color-accent-transparent: rgba(0, 255, 156, .15);--color-border: #30363d;--font-family-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-weight-normal: 400;--font-weight-bold: 700;--line-height-base: 1.6;font-family:var(--font-family-sans);line-height:var(--line-height-base);font-weight:var(--font-weight-normal);color:var(--color-text-primary);background-color:var(--color-background);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}body{min-width:320px;min-height:100vh;font-size:16px}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:1.2;margin-bottom:.75em;color:var(--color-text-primary)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}p{margin-bottom:1em}a{color:var(--color-accent);text-decoration:none;transition:color .2s ease-in-out}a:hover{color:var(--color-accent-hover);text-decoration:underline}button{font-family:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}#root{max-width:100%;margin:0;padding:0;text-align:left}main>section{padding:40px 20px}footer{text-align:center;padding:20px;border-top:1px solid var(--color-border);margin-top:40px}.hero-container{height:60vh;min-height:500px;width:100%;position:relative;background-color:var(--color-background);display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden;margin-bottom:2rem}.hero-container>canvas{position:absolute!important;top:0;left:0;width:100%!important;height:100%!important;z-index:1}.hero-content{position:relative;z-index:2;text-align:center;color:var(--color-text-primary);padding:20px;background:transparent;width:100%;max-width:800px;margin:0 auto}.welcome-text{font-size:4rem;font-weight:700;color:#fff;text-shadow:0 0 10px rgba(0,255,255,.7);margin:0;padding:1rem 2rem;background:#0d111780;border-radius:12px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid rgba(0,255,255,.2);box-shadow:0 4px 30px #0000001a;animation:float 6s ease-in-out infinite}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.hero-content h2{font-size:3rem;margin-bottom:.5em}.hero-content p{font-size:1.2rem;margin-bottom:1em}.projects-section{padding:60px 20px;background-color:var(--color-background);text-align:center;overflow:hidden}.projects-section .container{max-width:1200px;margin:0 auto}.projects-section h2{font-size:2.8rem;color:var(--color-accent);margin-bottom:20px}.projects-tagline{font-size:1.1rem;color:var(--color-text-secondary);margin-bottom:40px}.projects-grid{display:grid;gap:30px;margin-top:30px;align-items:stretch;transition:grid-template-columns .6s cubic-bezier(.25,.8,.25,1)}.projects-grid.collapsed-state{grid-template-columns:repeat(auto-fit,minmax(350px,1fr));justify-content:center;justify-items:center}.projects-grid.expanded-state{grid-template-columns:repeat(3,minmax(280px,1fr));justify-items:center}.project-card{background-color:#161b22;border-radius:8px;overflow:hidden;box-shadow:0 4px 15px #0003;transition:transform .3s ease,box-shadow .3s ease,opacity .4s ease;display:flex;flex-direction:column;width:100%;max-width:400px;min-height:450px;text-align:left}.projects-grid:not(.expanded-state) .project-card{cursor:pointer}.projects-grid:not(.expanded-state) .project-card:hover{transform:translateY(-10px) scale(1.02);box-shadow:0 8px 25px rgba(var(--color-accent-rgb),.3)}.project-card.center-card.expanded{box-shadow:0 0 15px var(--color-accent-transparent, rgba(0, 255, 156, .2)),0 0 8px var(--color-accent, #00FF9C),0 6px 20px #0000004d;transform:scale(1.05);border:1px solid var(--color-accent, #00FF9C);z-index:10;cursor:pointer}.project-image{width:100%;height:325px;object-fit:cover}.project-content{padding:20px;flex-grow:1;display:flex;flex-direction:column}.project-content h3{font-size:1.5rem;color:var(--color-text-primary);margin-bottom:10px}.project-teaser{font-size:1rem;color:var(--color-text-secondary);line-height:1.6;margin-bottom:15px;flex-grow:1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;text-overflow:ellipsis;min-height:3.2rem;max-height:calc(1rem * 1.6 * 3)}.project-tags{margin-bottom:15px}.project-cta-button{background-color:var(--color-accent);color:var(--color-background);border:none;padding:10px 15px;font-size:.9rem;font-weight:var(--font-weight-bold);border-radius:20px;cursor:pointer;transition:background-color .3s ease,transform .2s ease;text-decoration:none;display:inline-block;align-self:center;margin-top:auto}.project-cta-button:hover{background-color:var(--color-accent-hover);transform:translateY(-2px)}.tag{display:inline-block;background-color:var(--color-accent-transparent);color:var(--color-accent);padding:5px 10px;border-radius:15px;font-size:.8rem;margin-right:8px;margin-bottom:8px;font-weight:500}.side-card{opacity:0;transform:translateY(20px) scale(.95);animation:appear .5s cubic-bezier(.25,.8,.25,1) forwards}.side-card.tech-stack-card{animation-delay:.1s}.side-card.story-impact-card{animation-delay:.2s}.project-card.center-card.expanded{animation:popCenterCard .4s .15s cubic-bezier(.25,.8,.25,1) forwards}@keyframes appear{to{opacity:1;transform:translateY(0) scale(1)}}@keyframes popCenterCard{0%{transform:scale(1);opacity:.8}to{transform:scale(1.05);opacity:1;box-shadow:0 0 15px var(--color-accent-transparent, rgba(0, 255, 156, .2)),0 0 8px var(--color-accent, #00FF9C),0 6px 20px #0000004d;border:1px solid var(--color-accent, #00FF9C)}}.side-card .project-content h3{color:var(--color-accent);margin-bottom:20px;text-align:center;font-size:1.3rem}.side-card .project-content ul{list-style:none;padding-left:0;margin-bottom:15px}.side-card .project-content ul li{margin-bottom:8px;font-size:.9rem;color:var(--color-text-secondary)}.side-card .project-content h4{color:var(--color-text-primary);font-size:1rem;margin-top:15px;margin-bottom:10px;font-weight:var(--font-weight-semibold)}.side-card .project-content p{font-size:.95rem;line-height:1.6;color:var(--color-text-secondary)}@media (max-width: 992px){.projects-grid.expanded-state{grid-template-columns:minmax(auto,450px);justify-content:center}.project-card,.side-card{max-width:450px}}@media (max-width: 576px){.projects-grid.expanded-state{grid-template-columns:1fr}.project-card,.side-card{max-width:100%;min-height:auto}.project-content h3{font-size:1.3rem}.project-teaser{font-size:.95rem;-webkit-line-clamp:4;line-clamp:4;max-height:6.08rem}.side-card .project-content h3{font-size:1.2rem}.side-card .project-content p,.side-card .project-content ul li{font-size:.9rem}}.manifesto-section{padding:80px 20px;background-color:var(--color-background-secondary);text-align:center;color:var(--color-text-primary)}.manifesto-section .container{max-width:800px;margin:0 auto}.manifesto-section h2{font-size:2.8rem;color:var(--color-accent);margin-bottom:40px;position:relative;display:inline-block}.manifesto-section h2:after{content:"";display:block;width:70px;height:4px;background-color:var(--color-accent);margin:10px auto 0;border-radius:2px}.manifesto-content{text-align:left;margin-bottom:40px;font-size:1.1rem;line-height:1.7}.manifesto-intro{font-size:1.3em;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:30px;text-align:center}.manifesto-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;list-style:none;padding-left:0;margin-bottom:30px}.manifesto-list li{background-color:var(--color-accent-transparent);padding:20px;border-radius:8px;box-shadow:0 4px 10px #00000026;text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:150px;transition:transform .3s ease,box-shadow .3s ease}.manifesto-list li:hover{transform:translateY(-5px);box-shadow:0 6px 15px rgba(var(--color-accent-rgb),.2)}.manifesto-list li strong{display:block;font-weight:var(--font-weight-bold);color:var(--color-accent);margin-bottom:8px;font-size:1.1em}.manifesto-outro{font-size:1.2em;font-style:italic;color:var(--color-accent-secondary);text-align:center;margin-top:20px}.manifesto-section .cta-button.outlined-cta{background-color:transparent;color:var(--color-accent);border:2px solid var(--color-accent);padding:12px 25px;font-size:1rem;font-weight:var(--font-weight-bold);border-radius:25px;cursor:pointer;transition:background-color .3s ease,color .3s ease,transform .2s ease;text-decoration:none;display:inline-block}.manifesto-section .cta-button.outlined-cta:hover{background-color:var(--color-accent-transparent);color:var(--color-accent-hover);border-color:var(--color-accent-hover);transform:translateY(-2px)}@media (max-width: 768px){.manifesto-section h2{font-size:2.2rem}.manifesto-intro{font-size:1.15em}.manifesto-content{font-size:1rem}.manifesto-list{grid-template-columns:1fr;gap:15px}.manifesto-list li{min-height:auto;padding:15px}.manifesto-list li strong{font-size:1em}.manifesto-outro{font-size:1.1em}.manifesto-section .cta-button.outlined-cta{padding:10px 20px;font-size:.9rem}}.newsletter-section{padding:80px 20px;background-color:var(--color-background);text-align:center;color:var(--color-text-primary)}.newsletter-section .container{max-width:600px;margin:0 auto}.newsletter-section h2{font-size:2.8rem;color:var(--color-accent);margin-bottom:20px}.newsletter-tagline{font-size:1.1rem;color:var(--color-text-secondary);margin-bottom:40px}.newsletter-form{display:flex;flex-direction:column;gap:15px;margin-bottom:20px;align-items:center}.newsletter-form input[type=email]{flex-grow:1;padding:15px 20px;font-size:1rem;border:1px solid var(--color-border);border-radius:25px;background-color:var(--color-background-secondary, #1c2128);color:var(--color-text-primary);min-width:280px;box-sizing:border-box}.newsletter-form input[type=email]::placeholder{color:var(--color-text-secondary)}.newsletter-form input[type=email]:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(var(--color-accent-rgb),.3)}.newsletter-form .cta-button{background-color:var(--color-accent);color:var(--color-background);border:none;padding:15px 30px;font-size:1rem;font-weight:var(--font-weight-bold);border-radius:25px;cursor:pointer;transition:background-color .3s ease,transform .2s ease;white-space:nowrap}.newsletter-form .cta-button:hover{background-color:var(--color-accent-hover);transform:translateY(-2px)}.newsletter-message{margin-top:20px;padding:10px;border-radius:5px;font-size:.95rem}.newsletter-message.success{background-color:rgba(var(--color-accent-rgb),.15);color:var(--color-accent);border:1px solid rgba(var(--color-accent-rgb),.3)}.newsletter-message.error{background-color:#ff00001a;color:#ff6b6b;border:1px solid rgba(255,0,0,.3)}@media (min-width: 500px){.newsletter-form{flex-direction:row;align-items:stretch}.newsletter-form input[type=email]{border-top-right-radius:0;border-bottom-right-radius:0}.newsletter-form .cta-button{border-top-left-radius:0;border-bottom-left-radius:0}}.contact-section{padding:80px 20px;background-color:var(--color-background-secondary, #161b22);color:var(--color-text-primary)}.contact-section .container{max-width:700px;margin:0 auto;text-align:center}.contact-section h2{font-size:2.8rem;color:var(--color-accent);margin-bottom:20px}.contact-tagline{font-size:1.1rem;color:var(--color-text-secondary);margin-bottom:40px}.contact-form{display:flex;flex-direction:column;gap:20px;text-align:left}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:8px;font-weight:var(--font-weight-semibold, 600);color:var(--color-text-secondary)}.form-group input[type=text],.form-group input[type=email],.form-group textarea{padding:12px 15px;font-size:1rem;border:1px solid var(--color-border);border-radius:6px;background-color:var(--color-background, #0D1117);color:var(--color-text-primary);box-sizing:border-box;width:100%}.form-group input[type=text]::placeholder,.form-group input[type=email]::placeholder,.form-group textarea::placeholder{color:var(--color-text-secondary);opacity:.7}.form-group input[type=text]:focus,.form-group input[type=email]:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(var(--color-accent-rgb),.3)}.form-group textarea{resize:vertical;min-height:120px}.contact-form .cta-button{background-color:var(--color-accent);color:var(--color-background);border:none;padding:15px 30px;font-size:1.1rem;font-weight:var(--font-weight-bold);border-radius:25px;cursor:pointer;transition:background-color .3s ease,transform .2s ease;align-self:center;margin-top:10px}.contact-form .cta-button:hover{background-color:var(--color-accent-hover);transform:translateY(-2px)}.contact-feedback{margin-top:25px;padding:12px;border-radius:5px;font-size:1rem}.contact-feedback.success{background-color:rgba(var(--color-accent-rgb),.15);color:var(--color-accent);border:1px solid rgba(var(--color-accent-rgb),.3)}.contact-feedback.error{background-color:#ff00001a;color:#ff6b6b;border:1px solid rgba(255,0,0,.3)}.site-footer{background-color:var(--color-background-secondary, #161b22);color:var(--color-text-secondary);padding:30px 20px;text-align:center;border-top:1px solid var(--color-border, #30363d)}.site-footer .container{max-width:960px;margin:0 auto;display:flex;flex-direction:column;justify-content:space-between;align-items:center;gap:15px}.copyright-text{margin:0;font-size:.9rem}.social-links a{color:var(--color-text-secondary);text-decoration:none;font-size:.9rem;transition:color .3s ease}.social-link-item{display:inline-flex;align-items:center;gap:6px}.social-icon{width:1em;height:1em;vertical-align:middle}.social-links a:hover{color:var(--color-accent);text-decoration:underline}.social-links a:hover .social-icon{fill:var(--color-accent)}@media (min-width: 600px){.site-footer .container{flex-direction:row}.copyright-text{text-align:left}.social-links{text-align:right}}
