
:root{
  --motion-ease:cubic-bezier(.22,1,.36,1);
  --motion-fast:.28s;
  --motion-mid:.62s;
  --motion-slow:.9s;
  --surface-soft:#f6f8fc;
  --surface-card:#ffffff;
  --line-soft:rgba(7,26,54,.10);
  --text-soft:#4d617e;
  --shadow-soft:0 16px 50px rgba(7,26,54,.08);
}
html{scroll-behavior:smooth;}
body{overflow-x:hidden;}
.main-nav a,
.footer-nav a,
.btn,
.text-link,
.whatsapp-float,
.home-page-nav-links a,
.em-page-nav-links a,
.digital-page-nav-links a{
  transition:color var(--motion-fast) var(--motion-ease), background-color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease), box-shadow var(--motion-fast) var(--motion-ease), opacity var(--motion-fast) var(--motion-ease);
}
.btn:hover,.btn:focus-visible{transform:translateY(-2px); box-shadow:0 14px 28px rgba(7,26,54,.12);}
.text-link:hover span,.text-link:focus-visible span{transform:translateX(4px);}
.text-link span{display:inline-block; transition:transform var(--motion-fast) var(--motion-ease);}
.hero-render img,
.story-media img,
.contact-media img,
.em-story-media img,
.em-production-image img,
.em-case-media img,
.digital-story-media img,
.digital-campaign-media img,
.digital-design-media img,
.digital-contact-media img,
.project-image img,
.carousel-card img{
  transition:transform .9s var(--motion-ease), filter .6s var(--motion-ease);
}
.hero-render:hover img,
.story-media:hover img,
.contact-media:hover img,
.em-story-media:hover img,
.em-production-image:hover img,
.em-case-media:hover img,
.digital-story-media:hover img,
.digital-campaign-media:hover img,
.digital-design-media:hover img,
.digital-contact-media:hover img,
.carousel-card:hover img{transform:scale(1.03);}
.home-page-nav,.em-page-nav,.digital-page-nav{backdrop-filter:saturate(1.25) blur(14px);}
.home-page-nav-links a.is-active,
.em-page-nav-links a.is-active,
.digital-page-nav-links a.is-active{box-shadow:inset 0 -2px 0 currentColor;}

.reveal{opacity:0; transform:translate3d(0,34px,0); transition:opacity var(--motion-mid) var(--motion-ease), transform var(--motion-mid) var(--motion-ease); transition-delay:var(--reveal-delay,0ms); will-change:transform, opacity;}
.reveal.reveal-scale{transform:translate3d(0,26px,0) scale(.985);}
.reveal.reveal-visible{opacity:1; transform:none;}
.reveal-still{opacity:1 !important; transform:none !important;}

.projects{background:linear-gradient(180deg,#fff 0%,#f8fafd 100%);}
.portfolio-hubs{display:grid; gap:38px; margin-top:32px;}
.portfolio-carousel-block{background:var(--surface-card); border:1px solid var(--line-soft); border-radius:28px; padding:28px; box-shadow:var(--shadow-soft);}
.portfolio-carousel-head{display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:20px;}
.portfolio-carousel-head h3{margin:8px 0 0; font-size:clamp(1.8rem,2.6vw,2.5rem); line-height:1.05; color:#071a36;}
.portfolio-carousel-head p{margin:0;}
.portfolio-carousel-note{color:var(--text-soft); max-width:72ch;}
.carousel-shell{position:relative;}
.carousel-viewport{overflow:hidden; border-radius:24px;}
.carousel-track{display:flex; transition:transform .78s var(--motion-ease);}
.carousel-slide{min-width:100%;}
.carousel-card{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); background:#fbfcff; border:1px solid rgba(7,26,54,.08); border-radius:24px; overflow:hidden; min-height:440px;}
.carousel-card figure{margin:0; height:100%; overflow:hidden; background:#eef2f8;}
.carousel-card img{width:100%; height:100%; object-fit:cover; display:block;}
.carousel-copy{padding:34px 34px 32px; display:flex; flex-direction:column; justify-content:space-between; gap:16px;}
.carousel-kicker{display:inline-flex; align-items:center; gap:10px; font-size:.82rem; text-transform:uppercase; letter-spacing:.18em; color:#5c6d88; font-weight:700;}
.carousel-kicker::before{content:''; width:10px; height:10px; border-radius:999px; background:#f5c400; box-shadow:0 0 0 5px rgba(245,196,0,.14);}
.carousel-client{margin:0; font-size:clamp(1.7rem,2.2vw,2.4rem); line-height:1.05; color:#071a36;}
.carousel-sector{display:inline-block; margin-top:2px; color:#2b63ff; font-weight:700; letter-spacing:.04em;}
.carousel-description{margin:0; color:#334766; font-size:1rem; line-height:1.75;}
.carousel-points{display:flex; flex-wrap:wrap; gap:10px; padding:0; margin:0; list-style:none;}
.carousel-points li{padding:11px 14px; border-radius:999px; background:#eef4ff; color:#071a36; font-weight:600; font-size:.95rem;}
.carousel-footer{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px;}
.carousel-meta{display:flex; gap:10px; flex-wrap:wrap; align-items:center;}
.carousel-meta span{display:inline-flex; align-items:center; padding:8px 12px; border-radius:999px; background:#f3f6fb; color:#4d617e; font-size:.86rem; font-weight:600;}
.carousel-controls{display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:18px;}
.carousel-arrows{display:flex; gap:10px;}
.carousel-arrow{width:46px; height:46px; border-radius:999px; border:1px solid rgba(7,26,54,.12); background:#fff; color:#071a36; font-size:1.1rem; font-weight:800; cursor:pointer; display:grid; place-items:center; box-shadow:0 8px 18px rgba(7,26,54,.07);}
.carousel-arrow:hover,.carousel-arrow:focus-visible{transform:translateY(-2px); border-color:rgba(7,26,54,.22);}
.carousel-dots{display:flex; gap:10px; flex-wrap:wrap;}
.carousel-dot{width:12px; height:12px; border:none; border-radius:999px; background:#d6dfea; cursor:pointer; padding:0;}
.carousel-dot.is-active{background:#2b63ff; box-shadow:0 0 0 4px rgba(43,99,255,.14);}
.carousel-progress{color:#5c6d88; font-size:.93rem; font-weight:700; min-width:56px; text-align:right;}

/* Slightly rebalance legacy cards for better fluency */
.project-card,.digital-solution-card,.em-production-cats article,.pillar-list article,.process-steps li,.em-process-steps li,.digital-process-steps li,.em-chip,.digital-chip{transition:transform var(--motion-fast) var(--motion-ease), box-shadow var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease);}
.project-card:hover,.digital-solution-card:hover,.em-production-cats article:hover,.pillar-list article:hover,.process-steps li:hover,.em-process-steps li:hover,.digital-process-steps li:hover,.em-chip:hover,.digital-chip:hover{transform:translateY(-4px); box-shadow:0 16px 34px rgba(7,26,54,.09);}

@media (max-width: 1024px){
  .carousel-card{grid-template-columns:1fr; min-height:auto;}
  .carousel-card figure{max-height:420px;}
  .carousel-copy{padding:28px 26px 26px;}
}
@media (max-width: 767px){
  html{scroll-padding-top:132px;}
  .portfolio-carousel-block{padding:22px 16px; border-radius:24px;}
  .portfolio-carousel-head{flex-direction:column; align-items:flex-start; margin-bottom:16px;}
  .portfolio-carousel-head h3{font-size:1.62rem;}
  .portfolio-carousel-note{font-size:.97rem;}
  .carousel-card{border-radius:22px;}
  .carousel-card figure{order:2; max-height:none; aspect-ratio:4/3;}
  .carousel-copy{order:1; padding:22px 18px 18px;}
  .carousel-client{font-size:1.6rem;}
  .carousel-description{font-size:.96rem; line-height:1.68;}
  .carousel-points li{font-size:.84rem; padding:9px 12px;}
  .carousel-footer{flex-direction:column; align-items:flex-start;}
  .carousel-controls{align-items:center; flex-wrap:wrap;}
  .carousel-progress{order:-1; min-width:auto; text-align:left;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal,.reveal.reveal-scale{opacity:1; transform:none; transition:none;}
  .carousel-track,
  .main-nav a,.footer-nav a,.btn,.text-link,.whatsapp-float,.home-page-nav-links a,.em-page-nav-links a,.digital-page-nav-links a,
  .hero-render img,.story-media img,.contact-media img,.em-story-media img,.em-production-image img,.em-case-media img,.digital-story-media img,.digital-campaign-media img,.digital-design-media img,.digital-contact-media img,.carousel-card img{transition:none !important;}
}
