:root{--primary-blue: #4fc3f7;--secondary-blue: #90caf9;--dark-bg: #0f2027;--dark-bg2: #203a43;--dark-bg3: #2c5364;--text-main: #e0e6ed;--text-secondary: #b0bec5;--card-bg: rgba(20, 30, 48, .95);--shadow: 0 6px 32px 0 rgba(33, 150, 243, .15);--radius: 18px;line-height:1.5;font-weight:400;color:var(--text-main);background:linear-gradient(135deg,var(--dark-bg) 0%,var(--dark-bg2) 50%,var(--dark-bg3) 100%);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{font-family:Sora;src:url(/fonts/Sora-VariableFont_wght.ttf) format("truetype");font-weight:100 900;font-style:normal}body,#root{margin:0;padding:0;display:flex;flex-direction:column;min-height:100vh;height:100%;background:linear-gradient(120deg,#16202a,#23395d) no-repeat;color:#e0e6ed;font-family:Sora,sans-serif}#content{flex:1}a{font-weight:500;color:var(--primary-blue);text-decoration:none;transition:color .2s}a:hover{color:var(--secondary-blue)}h1,h2,h3,h4,h5,h6{color:var(--primary-blue);font-family:inherit;margin-top:0}button{border-radius:8px;border:1.5px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--card-bg);color:var(--primary-blue);cursor:pointer;transition:border-color .25s,background .2s,color .2s;box-shadow:var(--shadow)}button:hover{border-color:var(--primary-blue);background:var(--dark-bg2);color:var(--secondary-blue)}button:focus-visible{outline:3px solid var(--primary-blue)}::-webkit-scrollbar{width:8px;background:var(--dark-bg2)}::-webkit-scrollbar-thumb{background:var(--primary-blue);border-radius:4px}@media(max-width:600px){body{font-size:.98rem}h1{font-size:2rem}h2{font-size:1.3rem}}.navbar{display:flex;align-items:center;justify-content:space-between;background:#141e30fa;padding:0 32px;min-height:56px;box-shadow:0 2px 16px #2196f31a;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.navbar-logo{display:flex;align-items:center;gap:12px;color:#4fc3f7;font-size:1.5rem;font-weight:700;letter-spacing:2px;height:56px;z-index:201}.logo-image{width:auto;height:40px;object-fit:contain;border-radius:8px;box-shadow:0 2px 8px #2196f31a;background:#16202a;transition:transform .2s;display:block}.navbar-links{display:flex;flex:1 1 auto;justify-content:center;align-items:center;gap:36px;transition:max-height .3s,opacity .3s;position:relative;z-index:150}.navbar-links a{color:#e3f2fd;text-decoration:none;font-size:1.1rem;font-weight:600;padding:8px 18px;border-radius:8px;border:1px solid transparent;transition:background .2s,color .2s,border-color .2s,text-shadow .2s;position:relative}.navbar-links a.active{color:#4fc3f7;font-weight:700}.navbar-links a:hover:not(.active){background:#263446b3;color:#4fc3f7}.nav-indicator{position:absolute;bottom:2px;left:8px;right:8px;height:2px;background:#4fc3f7;border-radius:2px;box-shadow:0 0 8px #4fc3f799}.navbar-burger{display:none;flex-direction:column;justify-content:center;align-items:center;width:38px;height:38px;background:none;border:none;cursor:pointer;gap:6px;z-index:202}.navbar-burger span{display:block;width:26px;height:3px;background:#4fc3f7;border-radius:2px;transition:.3s}.navbar-burger.open span:nth-child(1){transform:translateY(9px) rotate(45deg)}.navbar-burger.open span:nth-child(2){opacity:0}.navbar-burger.open span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}.navbar-lang{display:flex;align-items:center;gap:6px;margin-left:18px;z-index:201}.navbar-lang button{background:none;border:none;color:#e3f2fd;font-weight:600;font-size:1rem;cursor:pointer;padding:2px 8px;border-radius:4px;transition:background .2s,color .2s}.navbar-lang button.active,.navbar-lang button:hover{background:#263446;color:#4fc3f7}.lang-sep{color:#4fc3f7;font-weight:700}@media(max-width:900px){.navbar-links{gap:18px}}@media(max-width:600px){.navbar{padding:0 12px;min-height:44px}.navbar-logo{font-size:1.1rem;gap:8px;height:44px}.logo-image{width:33px;height:33px}.navbar-links{position:absolute;top:100%;left:0;right:0;background:#141e30fa;flex-direction:column;align-items:center;gap:18px;max-height:0;opacity:0;overflow:hidden;pointer-events:none;transition:max-height .3s,opacity .3s;z-index:150}.navbar-links.open{max-height:300px;opacity:1;pointer-events:auto;padding:18px 0 12px;box-shadow:0 8px 24px #2196f31a}.navbar-burger{display:flex}}.footer{display:flex;flex-direction:column;color:#b0bec5;padding:18px 0;text-align:center;font-size:1rem;background:#16202a;border-top:1px solid #263446}.footer-content{display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center}.footer a{color:#fff;text-decoration:none;margin:0 6px;transition:color .2s}.footer a:hover{color:var(--primary-blue)}.home-header{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.header-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 70% 30%,#4fc3f7 0%,transparent 60%),radial-gradient(circle at 20% 80%,#263446 0%,transparent 70%);opacity:.18;z-index:1}.hero-scroll-wrapper{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;width:100%}.header-content{max-width:70%;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%}.parallax-layer{display:flex;flex-direction:column;align-items:center;width:100%}.header-banniere{width:60%;height:auto;border-radius:20px;object-fit:contain;margin-bottom:32px;transition:transform .3s}.header-banniere:hover{transform:scale(1.05)}.header-title{font-size:2.2rem;color:#e3f2fd;font-weight:700;letter-spacing:2px;margin-bottom:32px;text-align:center}.typewriter{color:#4fc3f7;font-size:2.2rem;font-weight:700;letter-spacing:2px;min-width:260px;white-space:nowrap}.typewriter-cursor{display:inline-block;width:1ch;color:#4fc3f7;animation:blink 1s steps(1) infinite}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.header-subtitle{color:#b0c8e0;font-size:1.1rem;text-align:center;max-width:520px;line-height:1.7;margin:0 0 28px}.header-actions{display:flex;flex-direction:column;align-items:center;gap:20px}.header-cta{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:8px;padding:13px 32px;border-radius:10px;border:2px solid #4fc3f7;background:transparent;color:#4fc3f7;font-size:1rem;font-weight:700;text-decoration:none;letter-spacing:.4px;text-shadow:0 0 10px rgba(79,195,247,.6);box-shadow:0 0 14px #4fc3f740,inset 0 0 14px #4fc3f70a;transition:color .32s ease,text-shadow .32s ease,box-shadow .32s ease;z-index:1}.header-cta:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,#4fc3f7,#2196f3);transform:scaleX(0);transform-origin:left center;transition:transform .36s cubic-bezier(.4,0,.2,1);z-index:-1}.header-cta:hover:before{transform:scaleX(1)}.header-cta:hover{color:#071e2e;text-shadow:none;box-shadow:0 0 18px #4fc3f7a6,0 0 45px #4fc3f74d,0 0 80px #4fc3f71f}.header-socials{display:flex;gap:28px}.header-socials a{color:#e3f2fd;font-size:2.2rem;transition:color .2s,transform .2s}.header-socials a:hover{color:#4fc3f7;transform:scale(1.15)}.scroll-indicator{position:absolute;bottom:60px;left:50%;transform:translate(-50%);z-index:4;color:#4fc3f7b3;font-size:1.4rem}.sections-card{position:relative;z-index:2;border-radius:32px 32px 0 0;overflow:hidden;box-shadow:0 -28px 70px #0009;margin-top:-32px}.timeline-header{display:flex;align-items:center;gap:14px;margin-bottom:4px}.timeline-company-img{width:50px;height:50px;object-fit:contain;border-radius:8px;box-shadow:0 1px 6px #2196f314;background-color:#fff;border:2px solid var(--dark-bg3)}.timeline-section{background:#192231;padding:48px 0 32px;display:flex;flex-direction:column;align-items:center}.timeline-title{color:#4fc3f7;font-size:2rem;font-weight:700;margin-bottom:32px;letter-spacing:2px}.timeline-title:after{content:"";display:block;width:60px;height:4px;background:#4fc3f7;margin:8px auto 0;border-radius:2px}.timeline{display:flex;flex-direction:column;gap:32px;width:90%;max-width:700px;position:relative;padding:24px 0}.timeline-line{position:absolute;left:24px;top:24px;bottom:24px;width:3px;background:linear-gradient(180deg,#4fc3f7,#2634464d);border-radius:2px;z-index:0;transform-origin:top center}.timeline-item{display:flex;align-items:flex-start;position:relative;padding-left:64px;z-index:1}.timeline-icon{position:absolute;left:0;top:0;background:#263446;color:#4fc3f7;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.7rem;box-shadow:0 2px 8px #2196f31a;z-index:2}.timeline-content{background:#202b3a;border-radius:10px;padding:18px 24px;color:#e3f2fd;box-shadow:0 2px 8px #2196f312;width:100%}.timeline-content h3{margin:0 0 4px;font-size:1.2rem;color:#4fc3f7}.timeline-company{font-size:1rem;color:#b0bec5;margin-right:12px}.timeline-date{font-size:.95rem;color:#90caf9}.timeline-content p{margin:8px 0 0;color:#b0bec5}.timeline-item.pro .timeline-icon{background:#263446;color:#4fc3f7}.timeline-item.edu .timeline-icon{background:#4fc3f7;color:#16202a}@media(max-width:600px){.header-title,.typewriter{font-size:1.2rem;min-width:120px}.header-banniere{width:85%}.header-subtitle{font-size:.95rem;padding:0 8px}.header-cta{padding:10px 22px;font-size:.92rem}.header-socials a{font-size:1.4rem}.timeline{width:80%;padding:12px 0}.timeline-title{font-size:1.3rem}.timeline:before{left:18px;top:18px;bottom:18px}.timeline-content h3,.timeline-company,.timeline-date,.timeline-content ul li{font-size:.8rem}.timeline-item{padding-left:48px}.timeline-icon{width:36px;height:36px;font-size:1.1rem;left:0;top:0}.timeline-content{padding:12px}}.projects-page{--card-bg: rgba(18, 33, 52, .82);--card-border: rgba(115, 165, 214, .28);--filter-bg: rgba(16, 30, 48, .76);display:flex;flex-direction:column;align-items:center;position:relative;padding:42px 14px 18px;isolation:isolate}.projects-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 10% 8%,rgba(79,195,247,.2),transparent 34%),radial-gradient(circle at 90% 20%,rgba(144,202,249,.16),transparent 32%);opacity:.85;pointer-events:none;z-index:-1}.projects-title{color:#4fc3f7;text-align:center;margin-bottom:14px;font-size:clamp(1.8rem,1.25rem + 1.8vw,2.5rem);font-weight:800;letter-spacing:.6px;text-shadow:0 6px 20px rgba(79,195,247,.18)}.project-intro{color:#bfd1df;font-size:1.06rem;margin:0 0 20px;text-align:center;max-width:620px;line-height:1.7}.tech-filters-fixed{position:sticky;top:76px;width:min(1120px,100%);margin:0 auto;z-index:10;padding:16px;border-radius:16px;border:1px solid rgba(112,168,221,.22);background:linear-gradient(140deg,rgba(14,28,45,.88),var(--filter-bg));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 32px #08122157}.tech-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.tech-btn{border-radius:999px;padding:8px 14px 8px 10px;font-weight:600;cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease;display:inline-flex;align-items:center;gap:8px;box-shadow:none}.tech-btn.framework,.tech-btn.language,.tech-btn.sgbd,.tech-btn.tool{background:#122338e0;border:1px solid rgba(109,147,184,.26)}.tech-btn.framework{color:#74d2ff}.tech-btn.language{color:#6df2b0}.tech-btn.sgbd{color:#94c5ff}.tech-btn.tool{color:#ffc978}.tech-btn:hover{transform:translateY(-1px)}.tech-btn.selected{transform:translateY(-2px);font-weight:700}.tech-btn.framework:hover:not(.selected){background:#29587d66;border-color:#4fc3f773;color:#d9f2ff}.tech-btn.language:hover:not(.selected){background:#255e4366;border-color:#43e68b73;color:#d8ffe9}.tech-btn.sgbd:hover:not(.selected){background:#23406266;border-color:#74aef273;color:#e2f0ff}.tech-btn.tool:hover:not(.selected){background:#62482266;border-color:#ffb74d73;color:#fff0d6}.tech-btn.framework.selected{background:#4fc3f738;border:2px solid #4fc3f7;color:#fff;box-shadow:0 0 12px #4fc3f766,inset 0 0 8px #4fc3f71a;text-shadow:0 0 10px rgba(79,195,247,.6)}.tech-btn.language.selected{background:#43e68b33;border:2px solid #43e68b;color:#fff;box-shadow:0 0 12px #43e68b66,inset 0 0 8px #43e68b1a;text-shadow:0 0 10px rgba(67,230,139,.6)}.tech-btn.sgbd.selected{background:#74aef233;border:2px solid #74aef2;color:#fff;box-shadow:0 0 12px #74aef266,inset 0 0 8px #74aef21a;text-shadow:0 0 10px rgba(116,174,242,.6)}.tech-btn.tool.selected{background:#ffb74d33;border:2px solid #ffb74d;color:#fff;box-shadow:0 0 12px #ffb74d66,inset 0 0 8px #ffb74d1a;text-shadow:0 0 10px rgba(255,183,77,.5)}.tech-icon{width:22px;height:22px;object-fit:contain;border-radius:6px;background:#fff;box-shadow:0 1px 6px #0a142033}.projects-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;width:min(1120px,100%);margin:30px 0 36px}.project-card{background:linear-gradient(170deg,#182940db,#0f1c2de0),var(--card-bg);border-radius:18px;border:1px solid var(--card-border);box-shadow:0 16px 35px #07121e47;padding:14px 16px 20px;color:#e3f2fd;display:flex;flex-direction:column;min-height:468px;box-sizing:border-box;transition:transform .24s cubic-bezier(.2,.7,.2,1),box-shadow .24s ease,border-color .24s ease}.project-card:hover{transform:translateY(-5px);border-color:#81c0f48c;box-shadow:0 22px 40px #07121e6b}.project-banner{position:relative;width:100%;height:180px;border-radius:12px;overflow:hidden;background:#141f2d;border:1px solid rgba(128,179,227,.2)}.project-preview-banner{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}.project-card:hover .project-preview-banner{transform:scale(1.04)}.project-type-tag{position:absolute;top:10px;left:10px;padding:4px 9px;border-radius:999px;font-size:.74rem;font-weight:700;background:#0d1b2ab8;border:1px solid #4fc3f7;color:#dff3ff;z-index:2;letter-spacing:.3px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.project-card h3{margin:14px 0 10px;color:#82d7ff;font-size:1.22rem;line-height:1.3}.project-card p{width:100%;margin:0;color:#bdd0e0;line-height:1.58;display:-webkit-box;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:76px}.project-techs{margin:14px 0 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.project-tech{border-radius:999px;padding:4px 11px;font-size:.88rem;border:1px solid transparent}.project-tech-framework{background:#4fc3f71f;border-color:#4fc3f752;color:#8fe2ff}.project-tech-language{background:#43e68b1c;border-color:#43e68b59;color:#adf8d1}.project-tech-sgbd{background:#78acee24;border-color:#78acee5c;color:#cfe4ff}.project-tech-tool{background:#ffb74d1f;border-color:#ffb74d59;color:#ffe0b2}.project-tech-more{background:#cee2f424;border-color:#cee2f447;color:#cfe0ee}.project-site-btn{display:inline-flex;align-items:center;gap:7px;align-self:flex-end;margin-top:auto;padding:8px 16px;border-radius:8px;border:1.5px solid #4fc3f7;background:#4fc3f712;color:#4fc3f7;font-size:.88rem;font-weight:700;text-decoration:none;letter-spacing:.3px;box-shadow:0 0 8px #4fc3f759,0 0 22px #4fc3f726,inset 0 0 8px #4fc3f70a;text-shadow:0 0 10px rgba(79,195,247,.75);transition:box-shadow .22s ease,background .22s ease,text-shadow .22s ease}.project-site-btn:hover{background:#4fc3f724;color:#a8e8ff;border-color:#7dd8ff;box-shadow:0 0 14px #4fc3f7a6,0 0 36px #4fc3f74d,inset 0 0 12px #4fc3f714;text-shadow:0 0 14px rgba(79,195,247,1)}.tech-btn:focus-visible,.project-site-btn:focus-visible{outline:2px solid #90caf9;outline-offset:2px}.no-project{color:#c5d9e8;font-size:1.05rem;padding:18px;border-radius:12px;border:1px dashed rgba(130,177,221,.45);background:#0e1d2d80}@media(max-width:900px){.tech-filters-fixed{position:static;padding:14px 12px}.projects-list{gap:18px}}@media(max-width:600px){.projects-page{padding:28px 10px 14px}.projects-title{margin-bottom:10px}.project-intro{font-size:.97rem;margin-bottom:14px}.tech-grid{justify-content:flex-start}.tech-btn{font-size:.86rem;padding:7px 11px 7px 8px}.tech-icon{width:18px;height:18px}.projects-list{grid-template-columns:1fr;width:100%}.project-card{min-height:430px;padding:12px 12px 15px}.project-banner{height:160px}.project-card h3{font-size:1.06rem}.project-card p{font-size:.92rem;min-height:68px}.project-tech{font-size:.78rem;padding:3px 8px}.project-site-btn{width:100%;justify-content:center}}.about-page{display:flex;flex-direction:column;align-items:center;padding:48px 14px}.about-stats{display:flex;gap:24px;flex-wrap:wrap;justify-content:center;width:100%;max-width:860px;margin-bottom:40px}.about-stat-card{flex:1;min-width:160px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:28px 20px;border-radius:16px;background:linear-gradient(140deg,#102034e6,#14263cd9);border:1px solid rgba(79,195,247,.2);box-shadow:0 8px 24px #050e1c4d}.stat-value{font-size:2.4rem;font-weight:800;color:#4fc3f7;line-height:1;text-shadow:0 0 20px rgba(79,195,247,.4)}.stat-label{font-size:.9rem;color:#8bacc4;text-align:center}.about-hosting-section{max-width:860px;margin:0 auto;padding:36px;border-radius:20px;color:#dce7f3;border:1px solid rgba(123,160,196,.25);background:radial-gradient(circle at 10% 10%,rgba(71,145,255,.2),transparent 42%),radial-gradient(circle at 90% 90%,rgba(102,211,255,.14),transparent 38%),linear-gradient(160deg,#081424f5,#112740f0);box-shadow:0 18px 40px #050e1861}.about-hosting-section h2{margin:0 0 18px;font-size:clamp(1.6rem,1.2rem + 1.3vw,2.2rem);line-height:1.2;letter-spacing:.01em;color:#f1f8ff}.about-hosting-section p{margin:0;color:#c6d9ea;font-size:1.08rem;line-height:1.75}.about-hosting-section p+p{margin-top:22px}.about-hosting-section ul{margin:20px 0;padding:0;list-style:none;display:grid;gap:12px}.about-hosting-section li{padding:13px 15px;border-radius:12px;background:#10284294;border:1px solid rgba(139,193,255,.2);line-height:1.55}.about-hosting-section li:before{content:"->";margin-right:9px;color:#73c0ff;font-weight:700}.about-hosting-section b{color:#fff}@media(max-width:768px){.about-page{padding:28px 12px 32px}.about-stats{gap:14px;margin-bottom:28px}.about-stat-card{min-width:120px;padding:20px 14px}.stat-value{font-size:1.9rem}.about-hosting-section{margin:0;padding:24px 18px;border-radius:16px}.about-hosting-section p,.about-hosting-section li{font-size:.98rem}}.contact-page{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 8px;min-height:calc(100vh - 180px);box-sizing:border-box;position:relative;isolation:isolate}.contact-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 20% 20%,rgba(79,195,247,.12),transparent 40%),radial-gradient(circle at 80% 80%,rgba(33,150,243,.1),transparent 40%);pointer-events:none;z-index:-1}.contact-page h2{color:#4fc3f7;font-size:2rem;font-weight:800;margin-bottom:10px;letter-spacing:1.5px;text-align:center}.contact-intro{color:#b0bec5;font-size:1.08rem;margin-bottom:24px;text-align:center;max-width:420px}.contact-box{background:#202b3a;border-radius:16px;box-shadow:0 2px 16px #2196f312;padding:32px 24px;display:flex;flex-direction:column;gap:22px;align-items:center;margin-top:8px;width:100%;max-width:420px}.contact-grid{display:flex;flex-direction:row;gap:2rem;margin:30px;justify-content:center;flex-wrap:wrap}.contact-card{background:linear-gradient(140deg,#142336eb,#101c2ee0);border-radius:var(--radius);border:1px solid rgba(79,195,247,.15);box-shadow:0 8px 28px #050e1c4d;padding:32px 28px 26px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:10px;width:300px;text-decoration:none;transition:transform .22s cubic-bezier(.4,2,.6,1),box-shadow .22s,border-color .22s}.contact-card:hover{border-color:#4fc3f759}.contact-icon{color:var(--primary-blue);font-size:2rem;margin-bottom:4px;filter:drop-shadow(0 0 10px rgba(79,195,247,.4))}.contact-type{color:var(--text-secondary);font-size:1.2em;font-weight:700;margin-bottom:2px}.contact-value{color:var(--text-main);font-size:1.08rem;font-weight:600;word-break:break-all;transition:color .2s;text-decoration:none}.contact-value:hover{color:var(--primary-blue)}.notfound-container{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#e3f2fd;background:transparent}.notfound-title{font-size:5rem;font-weight:700;color:#4fc3f7;margin-bottom:.5rem;letter-spacing:4px}.notfound-subtitle{font-size:2rem;color:#e3f2fd;margin-bottom:1rem}.notfound-text{font-size:1.1rem;color:#b0bec5;margin-bottom:2rem}.notfound-link{color:#4fc3f7;background:#263446;padding:8px 20px;border-radius:6px;text-decoration:none;font-weight:500;transition:background .2s,color .2s}.notfound-link:hover{background:#4fc3f7;color:#16202a}
