:root{--color-bg:#0f0f1a;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-light:#60a5fa;--color-text:#f8fafc;--color-text-muted:#94a3b8;--color-border:hsla(0,0%,100%,.08);--color-surface:hsla(0,0%,100%,.04);--color-surface-hover:hsla(0,0%,100%,.07);--navbar-height:64px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}#particles-canvas{height:100%;left:0;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}.page-content{padding-top:var(--navbar-height);position:relative;z-index:1}a{color:var(--color-primary-light);text-decoration:none;transition:color .2s}a:hover{color:var(--color-text)}img{height:auto;max-width:100%}.container{margin:0 auto;max-width:1100px;padding:0 1.5rem;width:100%}.section{padding:5rem 0}.section__title{color:var(--color-text);font-size:2rem;font-weight:700;margin-bottom:.5rem;text-align:center}.navbar{align-items:center;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:rgba(15,15,26,.45);border-bottom:1px solid hsla(0,0%,100%,.1);box-shadow:0 1px 0 hsla(0,0%,100%,.04),inset 0 1px 0 hsla(0,0%,100%,.06);display:flex;height:var(--navbar-height);justify-content:space-between;left:0;padding:0 2rem;position:fixed;right:0;top:0;z-index:100;--mouse-x:-200%;--mouse-y:50%}.navbar:before{background:radial-gradient(circle at var(--mouse-x) var(--mouse-y),rgba(37,99,235,.2),transparent 65%);content:"";inset:0;pointer-events:none;position:absolute;z-index:0}.navbar>*{position:relative;z-index:1}.navbar__brand{align-items:center;display:flex;flex-shrink:0;gap:.75rem;text-decoration:none}.navbar__logo-face{font-family:monospace;font-size:1.2rem;letter-spacing:-.05em;line-height:1}@keyframes eye-tremble{0%{transform:translate(0)}8%{transform:translate(1px,-1px)}16%{transform:translate(-1px,1px)}24%{transform:translate(1.5px,.5px)}32%{transform:translate(-.5px,-1.5px)}40%{transform:translate(.5px,1px)}48%{transform:translate(-1px)}56%{transform:translate(1px,-.5px)}64%{transform:translate(-1.5px,1px)}72%{transform:translate(.5px,-1px)}80%{transform:translate(-.5px,.5px)}90%{transform:translate(.5px,-.5px)}to{transform:translate(0)}}.navbar__brand:hover .navbar__logo-eye{animation:eye-tremble 1.5s ease-in-out;display:inline-block}.navbar__logo-eye{color:var(--color-primary-light);text-shadow:0 0 6px rgba(96,165,250,.9),0 0 16px rgba(96,165,250,.5),0 0 32px rgba(37,99,235,.3)}.navbar__logo-punct{color:var(--color-text-muted)}.navbar__logo-name{font-size:.95rem;font-weight:600;line-height:1}.navbar__logo-lieb{color:var(--color-primary-light);text-shadow:0 0 6px rgba(96,165,250,.9),0 0 16px rgba(96,165,250,.5),0 0 32px rgba(37,99,235,.3)}.navbar__logo-digital{color:var(--color-text-muted);font-weight:400}.navbar__nav{align-items:center;display:flex;gap:2rem;list-style:none;margin:0;padding:0}.navbar__nav a{color:var(--color-text-muted);font-size:.9rem;font-weight:500;transition:color .2s,text-shadow .3s}.navbar__nav a:hover{color:var(--color-text)}.navbar__nav a.active{color:var(--color-primary-light);text-decoration:underline;text-decoration-color:rgba(96,165,250,.7);text-decoration-thickness:1.5px;text-shadow:0 0 6px rgba(96,165,250,.9),0 0 16px rgba(96,165,250,.5),0 0 32px rgba(37,99,235,.3);text-underline-offset:4px}.navbar__cta{background:transparent;border:1.5px solid rgba(37,99,235,.55);border-radius:8px;color:var(--color-primary-light)!important;font-size:.85rem;font-weight:600;padding:.45rem 1.1rem;transition:background .2s,border-color .2s,color .2s,transform .1s!important;white-space:nowrap}.navbar__cta:hover{background:rgba(37,99,235,.12)!important;border-color:var(--color-primary-light);color:var(--color-text)!important;transform:translateY(-1px)}.footer{border-top:1px solid var(--color-border);justify-content:center;padding:1.5rem 2rem;position:relative;z-index:1}.footer,.footer__inner{align-items:center;display:flex}.footer__inner{gap:2rem}.footer__inner,.footer__link{color:var(--color-text-muted);font-size:.85rem}.footer__link:hover{color:var(--color-text)}.navbar__actions{align-items:center;display:flex;gap:.5rem}.navbar__cta--logout{border-color:rgba(148,163,184,.35);color:var(--color-text-muted)!important}.navbar__cta--logout:hover{background:rgba(148,163,184,.08)!important;border-color:rgba(148,163,184,.7);color:var(--color-text)!important}.navbar__cta--impersonate{border-color:rgba(245,158,11,.5);color:#fbbf24!important}.navbar__cta--impersonate:hover{background:rgba(245,158,11,.1)!important;border-color:#fbbf24;color:#fef3c7!important}.navbar__toggle{background:transparent;border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-muted);cursor:pointer;display:none;font-size:1.1rem;padding:.4rem .7rem;position:relative;transition:color .2s,border-color .2s;z-index:1}.navbar__toggle:hover{border-color:rgba(37,99,235,.4);color:var(--color-text)}.navbar__mobile-menu{backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:rgba(15,15,26,.96);border-bottom:1px solid hsla(0,0%,100%,.1);display:none;flex-direction:column;gap:1rem;left:0;padding:1.5rem 2rem;position:absolute;right:0;top:var(--navbar-height);z-index:99}.navbar--open .navbar__mobile-menu{display:flex}.navbar__mobile-menu .navbar__nav{align-items:flex-start;flex-direction:column;gap:0}.navbar__mobile-menu .navbar__nav li{width:100%}.navbar__mobile-menu .navbar__nav a{border-bottom:1px solid var(--color-border);display:block;font-size:1rem;padding:.75rem 0}.navbar__mobile-menu .navbar__nav li:last-child a{border-bottom:none}.navbar__mobile-menu .navbar__actions,.navbar__mobile-menu .navbar__cta{align-self:flex-start;margin-top:.5rem}@media (max-width:768px){.navbar>.navbar__actions,.navbar>.navbar__cta,.navbar>.navbar__nav{display:none}.navbar__toggle{display:block}}.login-container{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:calc(64px + 2rem) 2rem 2rem}.login-card{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:rgba(15,23,42,.6);border:1px solid var(--color-border);border-radius:16px;max-width:420px;padding:2.5rem;width:100%}.login-card__header{margin-bottom:2rem;text-align:center}.login-card__logo{height:64px;margin-bottom:1rem;width:auto}.login-card__header h1{color:var(--color-text);font-size:1.5rem;font-weight:700;margin-bottom:.25rem}.login-card__header p{color:var(--color-text-muted);font-size:.9rem}.alert{border-radius:8px;font-size:.9rem;margin-bottom:1.5rem;padding:.75rem 1rem}.alert--error{background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);color:#fca5a5}.form-group{margin-bottom:1.25rem}.form-group label{color:var(--color-text-muted);display:block;font-size:.85rem;font-weight:500;margin-bottom:.5rem}.form-control{background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.1);border-radius:8px;color:var(--color-text);font-size:.95rem;outline:none;padding:.65rem .9rem;transition:border-color .2s;width:100%}.form-control:focus{border-color:var(--color-primary)}.btn{align-items:center;border:1.5px solid transparent;border-radius:8px;cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:600;justify-content:center;padding:.7rem 1.25rem;transition:background .2s,border-color .2s,color .2s,transform .1s}.btn--primary{background:transparent;border-color:rgba(37,99,235,.55);color:var(--color-primary-light)}.btn--primary:hover{background:rgba(37,99,235,.12);border-color:var(--color-primary-light);color:var(--color-text);transform:translateY(-1px)}.btn--full{margin-top:.5rem;width:100%}.alert--success{background:rgba(34,197,94,.15);border:1px solid rgba(34,197,94,.3);color:#86efac}.reset-password-container{align-items:center;display:flex;justify-content:center;min-height:80vh;padding:2rem}.reset-password-card{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:rgba(15,23,42,.6);border:1px solid var(--color-border);border-radius:16px;max-width:440px;padding:2.5rem;width:100%}.reset-password-card--center{text-align:center}.reset-password-card__title{color:var(--color-text);font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.reset-password-card__title--error{color:#f87171}.reset-password-card__subtitle{color:var(--color-text-muted);margin-bottom:2rem}.hero{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:2rem 1.5rem;padding-top:calc(var(--navbar-height) + 1rem);position:relative;text-align:center}.hero__title{color:var(--color-text);font-size:clamp(2.5rem,6vw,4.5rem);font-weight:800;line-height:1.1;margin-bottom:1.5rem;margin-left:auto;margin-right:auto;max-width:840px}.hero__subtitle{color:var(--color-text-muted);font-size:1.15rem;line-height:1.7;margin:0 auto 2.5rem;max-width:600px}.hero__cta{align-items:center;background:transparent;border:1.5px solid rgba(37,99,235,.55);border-radius:10px;color:var(--color-primary-light);display:inline-flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.9rem 2rem;text-decoration:none;transition:background .2s,border-color .2s,color .2s,transform .15s}.hero__cta:hover{background:rgba(37,99,235,.12);border-color:var(--color-primary-light);color:var(--color-text);transform:translateY(-2px)}.services-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:3rem}.service-card{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:rgba(15,23,42,.6);border:1px solid var(--color-border);border-radius:16px;overflow:hidden;padding:2rem;position:relative;--mouse-x:-200%;--mouse-y:-200%;transition:border-color .2s,background .2s,transform .2s}.service-card:before{background:radial-gradient(circle at var(--mouse-x) var(--mouse-y),rgba(37,99,235,.2),transparent 65%);content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .2s;z-index:0}.service-card>*{position:relative;z-index:1}.service-card:hover{background:rgba(15,23,42,.75);border-color:rgba(37,99,235,.3);transform:scale(1.03)}.service-card:hover:before{opacity:1}.service-card__icon{color:var(--color-primary-light);display:block;font-size:2.5rem;margin-bottom:1rem}.service-card__icon,.service-card__title{text-align:center;text-shadow:0 0 6px rgba(96,165,250,.9),0 0 16px rgba(96,165,250,.5),0 0 32px rgba(37,99,235,.3)}.service-card__title{color:var(--color-text);font-size:1.15rem;font-weight:700;margin-bottom:.75rem}.service-card__description{color:var(--color-text-muted);font-size:.95rem;line-height:1.6}.projects-grid{display:grid;gap:2rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-top:3rem}.project-card{background:rgba(15,23,42,.6);border:1px solid var(--color-border);border-radius:16px;overflow:hidden;position:relative;--mouse-x:-200%;--mouse-y:-200%;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;flex-direction:column;transition:border-color .2s,background .2s,transform .2s}.project-card:before{background:radial-gradient(circle at var(--mouse-x) var(--mouse-y),rgba(37,99,235,.2),transparent 65%);content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transition:opacity .2s;z-index:0}.project-card>*{position:relative;z-index:1}.project-card:hover{background:rgba(15,23,42,.75);border-color:rgba(37,99,235,.3);transform:scale(1.03)}.project-card:hover:before{opacity:1}.project-card__image{display:block;height:200px;object-fit:cover;width:100%}.project-card__image--placeholder{align-items:center;background:linear-gradient(135deg,rgba(37,99,235,.15),rgba(37,99,235,.05));color:var(--color-text-muted);display:flex;font-size:3rem;height:200px;justify-content:center}.project-card__body{display:flex;flex:1;flex-direction:column;padding:1.5rem}.project-card__title{color:var(--color-text);font-size:1.1rem;font-weight:700;margin-bottom:.5rem}.project-card__description{color:var(--color-text-muted);flex:1;font-size:.9rem;line-height:1.6;margin-bottom:1rem}.project-card__techs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.tech-badge{background:rgba(37,99,235,.12);border:1px solid rgba(37,99,235,.2);border-radius:999px;font-size:.78rem;font-weight:500;padding:.2rem .7rem}.project-card__link,.tech-badge{color:var(--color-primary-light)}.project-card__link{align-items:center;display:inline-flex;font-size:.9rem;font-weight:600;gap:.3rem;margin-top:auto}.about-layout{align-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:rgba(15,23,42,.6);border:1px solid var(--color-border);border-radius:16px;display:grid;gap:4rem;grid-template-columns:1fr 1fr;margin-top:3rem;padding:2.5rem}@media (max-width:768px){.about-layout{gap:2rem;grid-template-columns:1fr}}.about-content{color:var(--color-text-muted);font-size:1rem;line-height:1.8}.about-content p{margin-bottom:1rem}.about-photo{border:1px solid var(--color-border);border-radius:16px;max-height:500px;object-fit:cover;width:100%}.contact-inner{margin:0 auto;max-width:680px}.contact-form{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:rgba(15,23,42,.6);border:1px solid var(--color-border);border-radius:16px;margin-top:2rem;padding:2.5rem}.contact-form .form-group{margin-bottom:1.25rem}.contact-form label{color:var(--color-text-muted);display:block;font-size:.85rem;font-weight:500;margin-bottom:.5rem}.contact-form input,.contact-form textarea{background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.1);border-radius:8px;color:var(--color-text);font-family:inherit;font-size:.95rem;outline:none;padding:.65rem .9rem;transition:border-color .2s;width:100%}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--color-primary)}.contact-form textarea{min-height:130px;resize:vertical}.contact-form-row{display:grid;gap:1rem;grid-template-columns:1fr 1fr}@media (max-width:640px){.contact-form-row{grid-template-columns:1fr}}.contact-form .errors{color:#fca5a5;font-size:.82rem;margin-top:.25rem}.flash-container{bottom:2rem;display:flex;flex-direction:column;gap:.75rem;max-width:380px;position:fixed;right:2rem;z-index:200}.flash{animation:slideIn .25s ease;border-radius:10px;font-size:.9rem;font-weight:500;padding:1rem 1.25rem}@keyframes slideIn{0%{opacity:0;transform:translateX(100px)}to{opacity:1;transform:translateX(0)}}.flash--success{background:rgba(34,197,94,.15);border:1px solid rgba(34,197,94,.3);color:#86efac}.flash--error{background:rgba(239,68,68,.15);border:1px solid rgba(239,68,68,.3);color:#fca5a5}.hero__container{max-width:900px}.grid__empty{color:var(--color-text-muted);grid-column:1/-1}.project-detail__back{color:var(--color-text-muted);display:inline-block;font-size:.9rem;margin-bottom:2rem}.project-detail__title{font-size:2.5rem;font-weight:700;margin-bottom:1rem}.project-detail__techs{margin-bottom:2rem}.project-detail__image{border:1px solid var(--color-border);border-radius:16px;margin-bottom:2rem;max-height:500px;object-fit:cover;width:100%}.project-detail__description{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:rgba(15,23,42,.6);border:1px solid var(--color-border);border-radius:16px;color:var(--color-text-muted);font-size:1.05rem;line-height:1.8;padding:2.5rem;white-space:pre-line}.project-detail__cta{margin-top:2.5rem}.legal-container{max-width:800px}.legal-content{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:rgba(15,23,42,.6);border:1px solid var(--color-border);border-radius:16px;margin-top:2rem;padding:2.5rem}