*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
--white:#ffffff;
--off:#f5f5f8;
--surface:#eeeef4;
--ink:#0c0c0e;
--ink-2:#3a3a40;
--ink-3:#6e6e7a;
--ink-4:#9e9ea8;
--border:#e0e0e8;
--border-soft:#eaeaef;
--cyan:#00c8b4;
--cyan-dark:#009e8e;
--cyan-bg:#e0faf7;
--cyan-border:#a3ede7;
--purple:#6c47ff;
--purple-dark:#4d2fe0;
--purple-bg:#eeebff;
--purple-border:#c4b8ff;
--magenta:#c026d3;
--magenta-bg:#fae8ff;
--magenta-border:#e9a8f5;
--orange:#f97316;
--orange-bg:#fff1e6;
--orange-border:#fdc99a;
--blue:#2563eb;
--blue-bg:#eff4ff;
--blue-border:#bfcffe;
--green:#16a34a;
--green-bg:#e8faf0;
--green-border:#86efac;
--radius:14px;
--radius-lg:20px;
--radius-xl:28px;
--shadow-sm:0 1px 3px rgba(0,0,0,0.06),0 1px 2px rgba(0,0,0,0.04);
--shadow:0 4px 16px rgba(0,0,0,0.07),0 1px 4px rgba(0,0,0,0.04);
--shadow-lg:0 12px 40px rgba(0,0,0,0.10),0 2px 8px rgba(0,0,0,0.05);
--transition:all 0.28s cubic-bezier(0.4,0,0.2,1);
}
html{scroll-behavior:smooth;font-size:16px;overflow-x:hidden}
body{font-family:'DM Sans',sans-serif;background:var(--white);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:999;padding:0 6vw;height:68px;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,0.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-soft);transition:var(--transition)}
.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none}
.nav-logo-isotipo{height:36px;width:auto;display:block;flex-shrink:0}
.nav-logo-text{font-family:'Plus Jakarta Sans',sans-serif;font-size:18px;font-weight:700;letter-spacing:-0.02em;color:var(--ink)}
.nav-links{display:flex;align-items:center;gap:36px;list-style:none}
.nav-links a{font-size:14px;font-weight:400;color:var(--ink-2);letter-spacing:0.01em;transition:color 0.2s}
.nav-links a:hover{color:var(--ink)}
.nav-cta{background:linear-gradient(135deg,var(--purple),var(--cyan-dark));color:var(--white)!important;padding:9px 22px;border-radius:100px;font-size:13px!important;font-weight:600!important;letter-spacing:0.02em;transition:var(--transition)!important}
.nav-cta:hover{opacity:0.88!important;transform:translateY(-1px);box-shadow:0 6px 20px rgba(108,71,255,0.3)!important}

/* HERO */
.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:120px 6vw 80px;text-align:center;position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0;pointer-events:none;z-index:0}
.hero-blob{position:absolute;border-radius:50%;filter:blur(100px);opacity:0.55}
.blob-1{width:700px;height:700px;background:radial-gradient(circle,rgba(0,200,180,0.3),transparent 70%);top:-150px;right:-150px}
.blob-2{width:600px;height:600px;background:radial-gradient(circle,rgba(108,71,255,0.22),transparent 70%);bottom:-120px;left:-120px}
.blob-3{width:350px;height:350px;background:radial-gradient(circle,rgba(192,38,211,0.12),transparent 70%);top:38%;left:38%}
.hero-inner{position:relative;z-index:1;max-width:900px}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--purple-bg);border:1px solid var(--purple-border);padding:6px 16px;border-radius:100px;font-size:12px;font-weight:600;color:var(--purple-dark);letter-spacing:0.04em;text-transform:uppercase;margin-bottom:36px;opacity:0;animation:fadeUp 0.7s 0.1s forwards}
.hero-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--cyan);display:inline-block}
h1.hero-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(42px,6.5vw,86px);font-weight:800;line-height:1.05;letter-spacing:-0.03em;color:var(--ink);margin-bottom:28px;opacity:0;animation:fadeUp 0.8s 0.2s forwards}
h1.hero-title em{font-style:normal;background:linear-gradient(90deg,var(--cyan-dark),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hero-sub{font-size:clamp(16px,1.5vw,20px);color:var(--ink-3);max-width:580px;margin:0 auto 48px;font-weight:300;line-height:1.7;opacity:0;animation:fadeUp 0.8s 0.35s forwards}
.hero-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;opacity:0;animation:fadeUp 0.8s 0.5s forwards}
.btn-primary{background:linear-gradient(135deg,var(--purple),var(--cyan-dark));color:var(--white);padding:15px 34px;border-radius:100px;font-size:15px;font-weight:600;letter-spacing:0.01em;transition:var(--transition);display:inline-flex;align-items:center;gap:10px;cursor:pointer;box-shadow:0 4px 20px rgba(108,71,255,0.25)}
.btn-primary:hover{opacity:0.9;transform:translateY(-2px);box-shadow:0 8px 32px rgba(108,71,255,0.35)}
.btn-outline{background:transparent;color:var(--ink);padding:14px 32px;border-radius:100px;font-size:15px;font-weight:400;border:1px solid var(--border);transition:var(--transition);display:inline-flex;align-items:center;gap:10px;cursor:pointer}
.btn-outline:hover{border-color:var(--purple);color:var(--purple);transform:translateY(-2px)}
.hero-visual{margin-top:72px;opacity:0;animation:fadeUp 0.9s 0.65s forwards}
.hero-mockup{max-width:780px;width:100%;margin:0 auto;display:block}

/* SECTION COMMONS */
section{padding:100px 6vw}
.section-label{font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--purple);margin-bottom:16px;display:block}
.section-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(32px,4vw,52px);font-weight:700;line-height:1.12;letter-spacing:-0.025em;color:var(--ink);margin-bottom:20px}
.section-sub{font-size:17px;color:var(--ink-3);font-weight:300;line-height:1.7;max-width:560px}
.divider{width:48px;height:3px;background:linear-gradient(90deg,var(--cyan),var(--purple));margin:24px 0;border-radius:2px}

/* SERVICES */
.services{background:var(--off)}
.services-header{max-width:580px;margin-bottom:60px}
.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.service-card{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:36px 32px;transition:var(--transition);position:relative;overflow:hidden;cursor:default}
.service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.sc-cyan{border-top:3px solid var(--cyan)}
.sc-cyan .service-icon{background:var(--cyan-bg);border-color:var(--cyan-border)}
.sc-cyan .service-icon svg{stroke:var(--cyan-dark)}
.sc-cyan:hover{box-shadow:0 12px 40px rgba(0,200,180,0.14)}
.sc-purple{border-top:3px solid var(--purple)}
.sc-purple .service-icon{background:var(--purple-bg);border-color:var(--purple-border)}
.sc-purple .service-icon svg{stroke:var(--purple)}
.sc-purple:hover{box-shadow:0 12px 40px rgba(108,71,255,0.14)}
.sc-magenta{border-top:3px solid var(--magenta)}
.sc-magenta .service-icon{background:var(--magenta-bg);border-color:var(--magenta-border)}
.sc-magenta .service-icon svg{stroke:var(--magenta)}
.sc-magenta:hover{box-shadow:0 12px 40px rgba(192,38,211,0.12)}
.sc-orange{border-top:3px solid var(--orange)}
.sc-orange .service-icon{background:var(--orange-bg);border-color:var(--orange-border)}
.sc-orange .service-icon svg{stroke:var(--orange)}
.sc-orange:hover{box-shadow:0 12px 40px rgba(249,115,22,0.12)}
.sc-blue{border-top:3px solid var(--blue)}
.sc-blue .service-icon{background:var(--blue-bg);border-color:var(--blue-border)}
.sc-blue .service-icon svg{stroke:var(--blue)}
.sc-blue:hover{box-shadow:0 12px 40px rgba(37,99,235,0.12)}
.sc-green{border-top:3px solid var(--green)}
.sc-green .service-icon{background:var(--green-bg);border-color:var(--green-border)}
.sc-green .service-icon svg{stroke:var(--green)}
.sc-green:hover{box-shadow:0 12px 40px rgba(22,163,74,0.12)}
.service-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:22px;border:1px solid;transition:var(--transition)}
.service-icon svg{width:22px;height:22px;transition:var(--transition)}
.service-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:17px;font-weight:600;color:var(--ink);margin-bottom:10px}
.service-desc{font-size:14px;color:var(--ink-3);line-height:1.65}

/* WHY US */
.why{background:var(--white)}
.why-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.why-points{margin-top:40px;display:flex;flex-direction:column;gap:0}
.why-point{display:flex;gap:20px;align-items:flex-start;padding:24px 0;border-bottom:1px solid var(--border-soft)}
.why-point:last-child{border-bottom:none}
.why-icon-wrap{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.why-icon-wrap svg{width:18px;height:18px}
.wi-cyan{background:var(--cyan-bg)} .wi-cyan svg{stroke:var(--cyan-dark)}
.wi-purple{background:var(--purple-bg)} .wi-purple svg{stroke:var(--purple)}
.wi-orange{background:var(--orange-bg)} .wi-orange svg{stroke:var(--orange)}
.wi-green{background:var(--green-bg)} .wi-green svg{stroke:var(--green)}
.why-point-body h4{font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:600;color:var(--ink);margin-bottom:4px}
.why-point-body p{font-size:13.5px;color:var(--ink-3);line-height:1.6}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.stat-card{border-radius:var(--radius-lg);padding:32px 28px;position:relative;overflow:hidden;transition:var(--transition);border:1px solid transparent}
.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.stat-card.s-cyan{background:var(--cyan-bg);border-color:var(--cyan-border)}
.stat-card.s-purple{background:var(--purple-bg);border-color:var(--purple-border)}
.stat-card.s-magenta{background:var(--magenta-bg);border-color:var(--magenta-border)}
.stat-card.s-dark{background:var(--ink);border-color:var(--ink)}
.stat-card.s-dark .stat-val,.stat-card.s-dark .stat-label{color:var(--white)}
.stat-card.s-dark .stat-suffix{color:var(--cyan)}
.stat-card.s-dark .stat-label{color:rgba(255,255,255,0.5)}
.stat-val{font-family:'Plus Jakarta Sans',sans-serif;font-size:48px;font-weight:800;letter-spacing:-0.04em;line-height:1}
.s-cyan .stat-val{color:var(--cyan-dark)}
.s-cyan .stat-suffix{color:var(--cyan-dark)}
.s-cyan .stat-label{color:var(--cyan-dark);opacity:0.7}
.s-purple .stat-val{color:var(--purple-dark)}
.s-purple .stat-suffix{color:var(--purple)}
.s-purple .stat-label{color:var(--purple-dark);opacity:0.7}
.s-magenta .stat-val{color:var(--magenta)}
.s-magenta .stat-suffix{color:var(--magenta)}
.s-magenta .stat-label{color:var(--magenta);opacity:0.7}
.stat-suffix{font-family:'Plus Jakarta Sans',sans-serif;font-size:28px;font-weight:700}
.stat-label{font-size:13px;margin-top:8px;font-weight:400}
.stat-card.wide{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 32px;background:var(--ink);border-color:var(--ink)}
.stat-card.wide .stat-label-wide{font-size:13px;font-weight:500;color:rgba(255,255,255,0.7)}
.stat-card.wide .stat-val-wide{font-family:'Plus Jakarta Sans',sans-serif;font-size:22px;font-weight:700;color:var(--white);margin-top:4px}
.progress-bar-track{height:5px;background:rgba(255,255,255,0.12);border-radius:3px;flex:1;overflow:hidden}
.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--cyan),var(--purple));border-radius:3px;transition:width 1.5s cubic-bezier(0.4,0,0.2,1)}

/* PORTFOLIO */
.portfolio{background:var(--off)}
.portfolio-header{margin-bottom:60px}
.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px}
.project-card{background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius-xl);overflow:hidden;transition:var(--transition);display:flex;flex-direction:column}
.project-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.project-preview{height:220px;background:var(--surface);position:relative;overflow:hidden;flex-shrink:0}
.project-preview iframe{width:200%;height:200%;transform:scale(0.5);transform-origin:0 0;pointer-events:none;border:none}
.project-preview-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 40%,rgba(10,10,14,0.4))}
.project-cat{position:absolute;top:16px;left:16px;padding:4px 12px;border-radius:100px;font-size:11px;font-weight:700;letter-spacing:0.05em;text-transform:uppercase}
.cat-blue{background:var(--blue-bg);color:var(--blue);border:1px solid var(--blue-border)}
.cat-cyan{background:var(--cyan-bg);color:var(--cyan-dark);border:1px solid var(--cyan-border)}
.cat-magenta{background:var(--magenta-bg);color:var(--magenta);border:1px solid var(--magenta-border)}
.project-body{padding:28px 28px 24px;flex:1;display:flex;flex-direction:column}
.project-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:20px;font-weight:700;color:var(--ink);margin-bottom:10px;letter-spacing:-0.01em}
.project-desc{font-size:14px;color:var(--ink-3);line-height:1.65;flex:1;margin-bottom:24px}
.project-actions{display:flex;gap:10px}
.btn-sm-dark{padding:9px 20px;border-radius:100px;font-size:13px;font-weight:600;background:linear-gradient(135deg,var(--purple),var(--cyan-dark));color:var(--white);transition:var(--transition);cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:0 2px 10px rgba(108,71,255,0.2)}
.btn-sm-dark:hover{opacity:0.88;transform:translateY(-1px);box-shadow:0 6px 20px rgba(108,71,255,0.3)}

/* TECH STACK */
.tech{background:var(--white);padding:80px 6vw}
.tech-header{text-align:center;margin-bottom:56px}
.tech-grid{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:900px;margin:0 auto}
.tech-pill{display:inline-flex;align-items:center;gap:9px;padding:9px 18px;border-radius:100px;font-size:13.5px;font-weight:500;transition:var(--transition);cursor:default;border:1px solid}
.tp-cyan{background:var(--cyan-bg);border-color:var(--cyan-border);color:var(--cyan-dark)}
.tp-purple{background:var(--purple-bg);border-color:var(--purple-border);color:var(--purple-dark)}
.tp-blue{background:var(--blue-bg);border-color:var(--blue-border);color:var(--blue)}
.tp-orange{background:var(--orange-bg);border-color:var(--orange-border);color:var(--orange)}
.tp-green{background:var(--green-bg);border-color:var(--green-border);color:var(--green)}
.tp-magenta{background:var(--magenta-bg);border-color:var(--magenta-border);color:var(--magenta)}
.tp-gray{background:var(--off);border-color:var(--border);color:var(--ink-2)}
.tech-pill:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.tech-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0;opacity:0.7}

/* CTA */
.cta-section{background:var(--ink);padding:120px 6vw;text-align:center;position:relative;overflow:hidden}
.cta-glow-1{position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(0,200,180,0.1),transparent 70%);top:50%;left:30%;transform:translate(-50%,-50%);pointer-events:none}
.cta-glow-2{position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(108,71,255,0.12),transparent 70%);top:50%;right:10%;transform:translateY(-50%);pointer-events:none}
.cta-inner{position:relative;z-index:1;max-width:700px;margin:0 auto}
.cta-label{font-size:11px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--cyan);margin-bottom:28px;display:block}
.cta-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(36px,5vw,64px);font-weight:800;color:var(--white);letter-spacing:-0.03em;line-height:1.1;margin-bottom:24px}
.cta-sub{font-size:17px;color:rgba(255,255,255,0.5);font-weight:300;line-height:1.7;margin-bottom:48px}
.cta-availability{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:rgba(255,255,255,0.35);margin-top:28px;letter-spacing:0.04em}
.avail-dot{width:6px;height:6px;border-radius:50%;background:#28c840;box-shadow:0 0 8px rgba(40,200,64,0.5)}
.btn-cta{background:linear-gradient(135deg,var(--cyan),var(--purple));color:var(--white);padding:17px 40px;border-radius:100px;font-size:15px;font-weight:700;letter-spacing:0.01em;transition:var(--transition);display:inline-flex;align-items:center;gap:10px;cursor:pointer;box-shadow:0 8px 32px rgba(108,71,255,0.35)}
.btn-cta:hover{opacity:0.9;transform:translateY(-2px);box-shadow:0 16px 48px rgba(108,71,255,0.4)}

/* FOOTER */
footer{background:var(--ink);border-top:1px solid rgba(255,255,255,0.06);padding:48px 6vw 36px}
.footer-inner{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px}
.footer-brand-logo{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.footer-brand-isotipo{height:30px;width:auto;filter:brightness(0) invert(1);opacity:0.85}
.footer-brand-name{font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;font-weight:700;color:rgba(255,255,255,0.85);letter-spacing:-0.01em}
.footer-brand p{font-size:13px;color:rgba(255,255,255,0.38);line-height:1.65;max-width:240px}
.footer-col h5{font-family:'Plus Jakarta Sans',sans-serif;font-size:12px;font-weight:600;color:rgba(255,255,255,0.5);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:18px}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.footer-col ul li a{font-size:13px;color:rgba(255,255,255,0.38);transition:color 0.2s}
.footer-col ul li a:hover{color:var(--cyan)}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.06);padding-top:28px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.footer-copy{font-size:12px;color:rgba(255,255,255,0.25);letter-spacing:0.02em}
.footer-socials{display:flex;gap:16px}
.social-link{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,0.1);display:flex;align-items:center;justify-content:center;transition:var(--transition)}
.social-link:hover{border-color:var(--cyan);background:rgba(0,200,180,0.08)}
.social-link svg{width:15px;height:15px;stroke:rgba(255,255,255,0.5);fill:none}
.social-link:hover svg{stroke:var(--cyan)}

/* CONTACT MODAL */
.modal-backdrop{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity 0.25s cubic-bezier(0.4,0,0.2,1)}
.modal-backdrop.open{opacity:1;pointer-events:all}
.modal-overlay{position:absolute;inset:0;background:rgba(12,12,14,0.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal-box{position:relative;z-index:1;background:var(--white);border-radius:28px;padding:48px 40px 40px;max-width:420px;width:100%;box-shadow:0 24px 80px rgba(0,0,0,0.18),0 0 0 1px rgba(0,0,0,0.04);transform:translateY(20px) scale(0.97);transition:transform 0.3s cubic-bezier(0.4,0,0.2,1)}
.modal-backdrop.open .modal-box{transform:translateY(0) scale(1)}
.modal-close{position:absolute;top:18px;right:18px;width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--off);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition);color:var(--ink-3)}
.modal-close:hover{background:var(--surface);color:var(--ink)}
.modal-close svg{width:14px;height:14px;stroke:currentColor;fill:none}
.modal-label{font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--purple);margin-bottom:12px;display:block}
.modal-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:24px;font-weight:700;color:var(--ink);letter-spacing:-0.02em;margin-bottom:8px}
.modal-sub{font-size:14px;color:var(--ink-3);line-height:1.6;margin-bottom:32px}
.modal-options{display:flex;flex-direction:column;gap:14px}
.modal-option{display:flex;align-items:center;gap:18px;padding:20px 22px;border-radius:18px;border:1.5px solid var(--border-soft);background:var(--off);cursor:pointer;transition:var(--transition);text-decoration:none;color:inherit}
.modal-option:hover{transform:translateY(-2px);border-color:transparent}
.modal-option.opt-email:hover{background:var(--blue-bg);border-color:var(--blue-border);box-shadow:0 8px 28px rgba(37,99,235,0.12)}
.modal-option.opt-whatsapp:hover{background:var(--green-bg);border-color:var(--green-border);box-shadow:0 8px 28px rgba(22,163,74,0.14)}
.opt-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--transition)}
.opt-email .opt-icon{background:var(--blue-bg);border:1px solid var(--blue-border)}
.opt-whatsapp .opt-icon{background:var(--green-bg);border:1px solid var(--green-border)}
.modal-option:hover .opt-icon{transform:scale(1.05)}
.opt-title{font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:600;color:var(--ink);margin-bottom:2px}
.opt-desc{font-size:12.5px;color:var(--ink-3)}
.opt-arrow{margin-left:auto;color:var(--ink-4);transition:var(--transition)}
.modal-option:hover .opt-arrow{color:var(--ink-2);transform:translateX(3px)}

/* ANIMATIONS */
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity 0.65s cubic-bezier(0.4,0,0.2,1),transform 0.65s cubic-bezier(0.4,0,0.2,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:0.1s}
.reveal-delay-2{transition-delay:0.2s}
.reveal-delay-3{transition-delay:0.3s}
.reveal-delay-4{transition-delay:0.4s}

/* RESPONSIVE */
@media(max-width:900px){
.why-inner{grid-template-columns:1fr;gap:48px}
.footer-inner{grid-template-columns:1fr 1fr;gap:36px}
.nav-links{display:none}
}
@media(max-width:600px){
.projects-grid{grid-template-columns:1fr}
.footer-inner{grid-template-columns:1fr}
.stats-grid{grid-template-columns:1fr}
.stat-card.wide{flex-direction:column;align-items:flex-start}
section{padding:72px 5vw}
}
.nav-ham{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px}
.nav-ham span{display:block;width:22px;height:1.5px;background:var(--ink);border-radius:2px;transition:var(--transition)}
@media(max-width:900px){.nav-ham{display:flex}}
