/* Reset and base styles */
* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  font-family: "Roboto Condensed", sans-serif;
  font-optical-sizing: auto;
  font-weight: 100;
  font-style: normal;
  line-height: 1.6;
  color: #898989;
  background: #e4e4e4;
}

/* Header styles */
header {
  padding: 0.5rem 0;
  margin-bottom: 2rem;
  text-align: left;
  background-color: #9a9a9a;
  opacity: 0.8;
  background: radial-gradient(circle, transparent 20%, #9a9a9a 20%, #9a9a9a 80%, transparent 80%, transparent), 
              radial-gradient(circle, transparent 20%, #9a9a9a 20%, #9a9a9a 80%, transparent 80%, transparent) 25px 25px, 
              linear-gradient(#adadad 2px, transparent 2px) 0 -1px, 
              linear-gradient(90deg, #adadad 2px, #9a9a9a 2px) -1px 0;
  background-size: 50px 50px, 50px 50px, 25px 25px, 25px 25px;
}

.header-content {
  max-width: 80rem;
  margin-inline: auto;
  padding-inline: var(--gutter);
  padding-left: 30px;
  padding-right: 30px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header-text {
  flex: 1;
}

.header-badges {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.header-badges img {
  transition: transform 0.2s ease;
}

.header-badges img:hover {
  transform: translateY(-2px);
}

header h1 {
  margin: 1rem 0 0.5rem 0;
  font-size: 2rem;
  font-weight: 300;
  color: #202020;
}

header p {
  margin: 0;
  font-size: 1.1rem;
  color: #7f8c8d;
}

/* Main content */
main {
  margin-bottom: 3rem;
}

/* Masonry layout */
.masonry {
  --gutter: 1rem;
  --flow-space: var(--gutter);
  --switcher-target-container-width: 28rem;
}

.masonry img {
  width: 100%;
  transition: transform 0.2s ease;
}

.masonry a {
  text-decoration: none;
  color: inherit;
  display: block;
}

.image-container {
  position: relative;
  display: block;
  width: 100%;
  line-height: 0;
  transition: transform 0.2s ease;
}

.image-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.6);
  color: white;
  padding: 8px 12px;
  font-size: 0.9rem;
  line-height: 1.2rem;
  font-weight: 300;
  opacity: 0;
  transition: opacity 0.2s ease;
  box-sizing: border-box;
}

.masonry a:hover .image-overlay {
  opacity: 1;
  transform: translateY(-10px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}

.masonry img:hover {
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.2);
  transition: box-shadow 0.2s ease;
}

.switcher {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gutter, 1em);
  align-items: var(--switcher-vertical-alignment, flex-start);
}

.switcher > * {
  flex-grow: 1;
  flex-basis: calc(
    (var(--switcher-target-container-width, 40rem) - 100%) * 999
  );
}

.flow > * + * {
  margin-block-start: var(--flow-space, 1em);
}

.wrapper {
  max-width: 80rem;
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* Footer styles */
footer {
  padding: 1.5rem 1rem;
  margin-top: auto;
  text-align: center;
  color: #202020;
  background-color: #9a9a9a;
  opacity: 0.8;
  background: radial-gradient(circle, transparent 20%, #9a9a9a 20%, #9a9a9a 80%, transparent 80%, transparent), 
              radial-gradient(circle, transparent 20%, #9a9a9a 20%, #9a9a9a 80%, transparent 80%, transparent) 25px 25px, 
              linear-gradient(#adadad 2px, transparent 2px) 0 -1px, 
              linear-gradient(90deg, #adadad 2px, #9a9a9a 2px) -1px 0;
  background-size: 50px 50px, 50px 50px, 25px 25px, 25px 25px;
}

footer p {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 300;
}

/* Responsive design */
@media (max-width: 768px) {
  .header-content {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }
  
  .header-badges {
    align-self: flex-start;
  }
  
  header h1 {
    font-size: 2rem;
  }
  
  header p {
    font-size: 1rem;
  }
  
  .masonry {
    --gutter: 0.75rem;
  }
}
