:root{--color-bg:#07080f;--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-light:#60a5fa;--color-text:#e8ecf8;--color-text-muted:#8892a4;--color-border:hsla(0,0%,100%,.08);--color-surface:hsla(0,0%,100%,.04);--color-surface-hover:hsla(0,0%,100%,.07);--color-card-bg:rgba(10,13,26,.9);--color-card-border:hsla(0,0%,100%,.08);--color-navbar-bg:rgba(5,6,12,.98);--color-navbar-mobile-bg:#05060e;--color-input-bg:hsla(0,0%,100%,.06);--color-input-border:hsla(0,0%,100%,.1);--color-glow-1:rgba(96,165,250,.8);--color-glow-2:rgba(96,165,250,.45);--color-glow-3:rgba(37,99,235,.25);--shadow-card:0 4px 32px rgba(0,0,0,.3);--shadow-card-hover:0 12px 40px rgba(0,0,0,.45);--shadow-login:0 16px 64px rgba(0,0,0,.55),0 0 0 1px hsla(0,0%,100%,.03);--navbar-height:64px}body.theme-light{--color-bg:#f8fafc;--color-primary:#0f766e;--color-primary-hover:#0d6b62;--color-primary-light:#2dd4bf;--color-text:#0f172a;--color-text-muted:#475569;--color-border:rgba(0,0,0,.08);--color-surface:rgba(0,0,0,.03);--color-surface-hover:rgba(0,0,0,.05);--color-card-bg:hsla(0,0%,100%,.92);--color-card-border:rgba(0,0,0,.09);--color-navbar-bg:rgba(248,250,252,.98);--color-navbar-mobile-bg:#f8fafc;--color-input-bg:rgba(0,0,0,.04);--color-input-border:rgba(0,0,0,.12);--color-glow-1:rgba(45,212,191,.5);--color-glow-2:rgba(45,212,191,.25);--color-glow-3:rgba(15,118,110,.12);--shadow-card:0 2px 16px rgba(0,0,0,.07),0 1px 4px rgba(0,0,0,.05);--shadow-card-hover:0 8px 32px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.06);--shadow-login:0 8px 40px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.05)}body.theme-dark,body.theme-vibrant{--color-bg:#2e1065;--color-primary:#fbbf24;--color-primary-hover:#f59e0b;--color-primary-light:#fde68a;--color-text:#fdf4e3;--color-text-muted:#c8a96a;--color-border:rgba(251,191,36,.2);--color-surface:rgba(251,191,36,.06);--color-surface-hover:rgba(251,191,36,.1);--color-card-bg:rgba(46,16,101,.88);--color-card-border:rgba(251,191,36,.2);--color-navbar-bg:rgba(26,8,69,.98);--color-navbar-mobile-bg:#1a0845;--color-input-bg:rgba(251,191,36,.07);--color-input-border:rgba(251,191,36,.2);--color-glow-1:rgba(253,230,138,.85);--color-glow-2:rgba(251,191,36,.4);--color-glow-3:rgba(245,158,11,.2);--shadow-card:0 4px 32px rgba(0,0,0,.4);--shadow-card-hover:0 12px 48px rgba(0,0,0,.5),0 0 24px rgba(251,191,36,.12);--shadow-login:0 16px 64px rgba(0,0,0,.65),0 0 0 1px rgba(251,191,36,.12);background-attachment:fixed;background-image:linear-gradient(160deg,#1a0845,#2e1065 50%,#3b0f82)}body.theme-agency{--color-bg:#f8fafc;--color-primary:#0f766e;--color-primary-hover:#0d6b62;--color-primary-light:#2dd4bf;--color-text:#0f172a;--color-text-muted:#475569;--color-border:rgba(0,0,0,.08);--color-surface:rgba(0,0,0,.03);--color-surface-hover:rgba(0,0,0,.05);--color-card-bg:hsla(0,0%,100%,.92);--color-card-border:rgba(0,0,0,.09);--color-navbar-bg:rgba(248,250,252,.98);--color-navbar-mobile-bg:#f8fafc;--color-input-bg:rgba(0,0,0,.04);--color-input-border:rgba(0,0,0,.12);--color-glow-1:rgba(45,212,191,.5);--color-glow-2:rgba(45,212,191,.25);--color-glow-3:rgba(15,118,110,.12);--shadow-card:0 2px 16px rgba(0,0,0,.07),0 1px 4px rgba(0,0,0,.05);--shadow-card-hover:0 8px 32px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.06);--shadow-login:0 8px 40px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.05)}#bg-canvas{height:100%;left:0;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}*,: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}.page-content{padding-top:var(--navbar-height)}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{background:var(--color-navbar-bg);border-bottom:1px solid var(--color-border);box-shadow:0 1px 0 hsla(0,0%,100%,.04),0 4px 32px rgba(0,0,0,.55);height:var(--navbar-height);justify-content:space-between;left:0;padding:0 2rem;position:fixed;right:0;top:0;z-index:100}.navbar,.navbar__brand{align-items:center;display:flex}.navbar__brand{flex-shrink:0;gap:.75rem;text-decoration:none}.navbar__brand img{height:var(--navbar-height)}.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 var(--color-glow-1),0 0 16px var(--color-glow-2),0 0 32px var(--color-glow-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 var(--color-glow-1),0 0 16px var(--color-glow-2),0 0 32px var(--color-glow-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:color-mix(in srgb,var(--color-primary-light) 70%,transparent);text-decoration-thickness:1.5px;text-shadow:0 0 6px var(--color-glow-1),0 0 16px var(--color-glow-2),0 0 32px var(--color-glow-3);text-underline-offset:4px}.navbar__cta{background:transparent;border:1.5px solid color-mix(in srgb,var(--color-primary) 55%,transparent);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:color-mix(in srgb,var(--color-primary) 12%,transparent)!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__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:color-mix(in srgb,var(--color-primary) 40%,transparent);color:var(--color-text)}.navbar__mobile-menu{background:var(--color-navbar-mobile-bg);border-bottom:1px solid var(--color-border);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{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:16px;border-top:2px solid color-mix(in srgb,var(--color-primary) 60%,transparent);box-shadow:var(--shadow-login);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:var(--color-input-bg);border:1px solid var(--color-input-border);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:color-mix(in srgb,var(--color-primary) 55%,transparent);color:var(--color-primary-light)}.btn--primary:hover{background:color-mix(in srgb,var(--color-primary) 12%,transparent);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{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:16px;border-top:2px solid color-mix(in srgb,var(--color-primary) 60%,transparent);box-shadow:var(--shadow-login);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 color-mix(in srgb,var(--color-primary) 55%,transparent);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:color-mix(in srgb,var(--color-primary) 12%,transparent);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{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:16px;border-top:2px solid color-mix(in srgb,var(--color-primary) 35%,transparent);overflow:hidden;padding:2rem;transition:border-color .25s,border-top-color .25s,box-shadow .25s,transform .25s}.service-card:hover{border-color:color-mix(in srgb,var(--color-primary) 30%,transparent);border-top-color:color-mix(in srgb,var(--color-primary) 75%,transparent);box-shadow:var(--shadow-card-hover),0 0 0 1px color-mix(in srgb,var(--color-primary) 12%,transparent);transform:translateY(-3px)}.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 var(--color-glow-1),0 0 16px var(--color-glow-2),0 0 32px var(--color-glow-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:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:16px;border-top:2px solid color-mix(in srgb,var(--color-primary) 35%,transparent);display:flex;flex-direction:column;overflow:hidden;transition:border-color .25s,border-top-color .25s,box-shadow .25s,transform .25s}.project-card:hover{border-color:color-mix(in srgb,var(--color-primary) 30%,transparent);border-top-color:color-mix(in srgb,var(--color-primary) 75%,transparent);box-shadow:var(--shadow-card-hover),0 0 0 1px color-mix(in srgb,var(--color-primary) 12%,transparent);transform:translateY(-3px)}.project-card__image{display:block;height:200px;object-fit:cover;width:100%}.project-card__image--placeholder{align-items:center;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 15%,transparent),color-mix(in srgb,var(--color-primary) 5%,transparent));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:color-mix(in srgb,var(--color-primary) 12%,transparent);border:1px solid color-mix(in srgb,var(--color-primary) 20%,transparent);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;background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:16px;box-shadow:var(--shadow-card);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-inner--with-info{align-items:start;display:grid;gap:2.5rem;grid-template-columns:1fr 1.4fr;max-width:960px}@media (max-width:768px){.contact-inner--with-info{grid-template-columns:1fr}}.contact-info{gap:1.25rem;margin-top:2rem}.contact-info,.contact-info__item{display:flex;flex-direction:column}.contact-info__item{gap:.25rem}.contact-info__label{color:var(--color-text-muted);font-size:.85rem;font-weight:500}.contact-info__address,.contact-info__item a{color:var(--color-text);font-size:1rem;text-decoration:none}.contact-info__item a:hover{color:var(--color-primary)}.contact-info__address{white-space:pre-line}.contact-form{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:16px;border-top:2px solid color-mix(in srgb,var(--color-primary) 40%,transparent);box-shadow:var(--shadow-card);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:var(--color-input-bg);border:1px solid var(--color-input-border);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{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:16px;box-shadow:var(--shadow-card);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{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:16px;box-shadow:var(--shadow-card);margin-top:2rem;padding:2.5rem}.reviews-carousel{padding:0 2.75rem;position:relative}.reviews-swiper{padding-bottom:.5rem}.reviews-swiper .swiper-slide{display:flex;height:auto}.reviews-carousel>.swiper-button-prev{left:0}.reviews-carousel>.swiper-button-next{right:0}.review-card{background:var(--color-surface,hsla(0,0%,100%,.05));border:1px solid var(--color-border,hsla(0,0%,100%,.1));border-radius:var(--radius,.75rem);display:flex;flex-direction:column;gap:1rem;height:100%;padding:1.75rem}.review-card__stars{font-size:1.25rem;letter-spacing:.1em}.review-card__star--filled,.review-card__stars{color:var(--color-primary,#fbbf24)}.review-card__comment{color:var(--color-text-muted);flex:1;font-size:.95rem;font-style:italic;line-height:1.6;margin:0}.review-card__author{color:var(--color-text);display:flex;flex-direction:column;font-size:.875rem;font-weight:600;gap:.2rem;margin:0}.review-card__service{color:var(--color-text-muted);font-size:.8rem;font-weight:400}.products-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:3rem}.product-card{background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:16px;border-top:2px solid color-mix(in srgb,var(--color-primary) 35%,transparent);display:flex;flex-direction:column;gap:.75rem;padding:2rem;transition:border-color .25s,border-top-color .25s,box-shadow .25s,transform .25s}.product-card__image{border-radius:10px;display:block;height:160px;object-fit:cover;width:100%}.product-card:hover{border-color:color-mix(in srgb,var(--color-primary) 30%,transparent);border-top-color:color-mix(in srgb,var(--color-primary) 75%,transparent);box-shadow:var(--shadow-card-hover),0 0 0 1px color-mix(in srgb,var(--color-primary) 12%,transparent);transform:translateY(-3px)}.product-card__name{color:var(--color-text);font-size:1.15rem;font-weight:700;margin:0}.product-card__subtitle{color:var(--color-text-muted);font-size:.9rem;line-height:1.4;margin:0}.product-card__price{color:var(--color-primary-light);font-size:1.6rem;font-weight:800;letter-spacing:-.02em;margin:.25rem 0;text-shadow:0 0 6px var(--color-glow-1),0 0 16px var(--color-glow-2),0 0 32px var(--color-glow-3)}.product-card__price .product-card__unit{color:var(--color-text-muted);font-size:.9rem;font-weight:500;text-shadow:none}.product-card__description{color:var(--color-text-muted);flex:1;font-size:.95rem;line-height:1.6;margin:0}