.services{background:var(--section-alt);padding:48px 0;position:relative;overflow:hidden}.services:before{content:"";background:linear-gradient(90deg,#0000,#6366f159,#0000);height:1px;position:absolute;top:0;left:0;right:0}.services:after{content:"";background:linear-gradient(90deg,#0000,#6366f159,#0000);height:1px;position:absolute;bottom:0;left:0;right:0}.services__header{text-align:center;margin-bottom:28px}.services__header .section-subtitle{margin:0 auto}.services__grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.service-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);cursor:default;opacity:0;padding:32px 28px;transition:opacity .6s,transform .6s,border-color .3s,box-shadow .3s,top .3s;position:relative;top:0;overflow:hidden;transform:translateY(30px)}.service-card.visible{opacity:1;transform:translateY(0)}.service-card:hover{border-color:var(--card-hover-border);box-shadow:var(--shadow-glow);top:-4px;transform:translateY(-4px)}.service-card__glow{opacity:0;pointer-events:none;background:radial-gradient(circle at 50% 0,#6366f114 0%,#0000 60%);transition:opacity .3s;position:absolute;inset:0}.service-card:hover .service-card__glow{opacity:1}.service-card__icon{width:54px;height:54px;color:var(--accent);transition:var(--transition);background:#6366f11f;border:1px solid #6366f140;border-radius:12px;justify-content:center;align-items:center;margin-bottom:20px;display:flex}.service-card:hover .service-card__icon{background:#6366f133;box-shadow:0 0 20px #6366f140}.service-card__title{color:var(--text-white);letter-spacing:-.3px;margin-bottom:12px;font-size:19px;font-weight:700}.service-card__desc{color:var(--text-light);margin-bottom:20px;font-size:14.5px;line-height:1.7}.service-card__tags{flex-wrap:wrap;gap:8px;display:flex}.service-card__tag{color:var(--accent);letter-spacing:.3px;background:#6366f11a;border:1px solid #6366f12e;border-radius:6px;padding:4px 10px;font-size:11.5px;font-weight:600;display:inline-block}@media (width<=1024px){.services__grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.services{padding:32px 0}.services__grid{grid-template-columns:1fr}.service-card{padding:24px 20px}}.technologies{background:var(--primary);padding:48px 0;overflow:hidden}.technologies__header{text-align:center;margin-bottom:24px}.technologies__header .section-subtitle{margin:0 auto}.technologies__track-wrapper{margin-bottom:20px;position:relative;overflow:hidden}.technologies__track-wrapper:before,.technologies__track-wrapper:after{content:"";z-index:2;pointer-events:none;width:120px;position:absolute;top:0;bottom:0}.technologies__track-wrapper:before{background:linear-gradient(to right, var(--primary), transparent);left:0}.technologies__track-wrapper:after{background:linear-gradient(to left, var(--primary), transparent);right:0}.technologies__track{gap:16px;width:max-content;animation:30s linear infinite scrollLeft;display:flex}.technologies__track--reverse{animation:35s linear infinite scrollRight}@keyframes scrollLeft{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes scrollRight{0%{transform:translate(-50%)}to{transform:translate(0)}}.technologies__track-wrapper:hover .technologies__track{animation-play-state:paused}.tech-badge{background:var(--card-bg);border:1px solid var(--card-border);white-space:nowrap;border-radius:12px;flex-shrink:0;align-items:center;gap:10px;padding:14px 22px;transition:border-color .3s,box-shadow .3s;display:flex}.tech-badge:hover{border-color:#6366f166;box-shadow:0 0 20px #6366f11f}.tech-badge--sm{padding:10px 18px}.tech-badge__icon{flex-shrink:0;font-size:20px;line-height:1}.tech-badge--sm .tech-badge__icon{font-size:17px}.tech-badge__name{color:var(--text-light);letter-spacing:.3px;font-size:14px;font-weight:600}.tech-badge--sm .tech-badge__name{font-size:13px}@media (prefers-reduced-motion:reduce){.technologies__track,.technologies__track--reverse{animation:none}}@media (width<=480px){.technologies{padding:32px 0}}.technologies__track-wrapper.marquee--offscreen .technologies__track{animation-play-state:paused}
