/* ==========================================================
   TABLE OF CONTENTS
   ==========================================================
   1. GLOBAL BASE RULES
      1.1 HTML & BODY
      1.2 IMAGES
      1.3 LINKS
      1.4 UTILITY CLASSES

   2. COMPONENT-SPECIFIC RULES
      2.1 CONTAINER
      2.2 SPECIFIC IMAGES
      2.3 CAPTION
      2.4 COPYRIGHT, CONSULTANCY & DATE

   3. RESPONSIVE OVERRIDES
      3.1 PORTRAIT ORIENTATION
      3.2 SMALL SCREENS (<= 768px)
      3.3 MEDIUM SCREENS (<= 1420px)
      3.4 EXTRA SMALL PORTRAIT PHONES (<= 400px)
   ========================================================== */

/* ==========================================================
   1. GLOBAL BASE RULES
   ========================================================== */

/* 1.1 HTML & BODY */
html,
body {
  margin: 0;
  padding: 0;
  height: 100vh; /* Fallback for older browsers */
  height: 100dvh; /* Dynamic viewport height for modern browsers */
  width: 100vw; /* Fallback for older browsers */
  width: 100dvw; /* Dynamic viewport width for modern browsers */
  overflow: hidden;
  color: #fff;
  font-size: 11px;
  line-height: 1.8;
  font-family: Arial, sans-serif;
}

body {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 1.2 IMAGES */
img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  max-width: 100%;
}

/* 1.3 LINKS */
a:link {
  text-decoration: none !important;
  cursor: pointer;
}
a:link,
a:visited,
a:hover {
  color: black;
}

/* 1.4 UTILITY CLASSES */
.prevent-select {
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* ==========================================================
   2. COMPONENT-SPECIFIC RULES
   ========================================================== */

/* 2.1 CONTAINER */
.container {
  position: relative;
  width: 50vw;
  width: 50dvw;
  text-align: center;
  z-index: 1;
}

.container img.prevent-select {
  margin: 0 auto;
}

/* 2.2 SPECIFIC IMAGES */
.container img[src$="murmurations.jpg"] {
  width: 49vw;
  width: 49dvw;
  max-height: 80vh;
  max-height: 80dvh;
}
.container img[src$="starlings.gif"] {
  width: 39vw;
  width: 39dvw;
  max-height: 70vh;
  max-height: 70dvh;
}

/* 2.3 CAPTION */
.caption {
  position: absolute;
  left: 0;
  top: 71%;
  width: 100%;
  text-align: center;
  color: #fff;
  z-index: 2;
}
.caption span.border {
  color: #fff;
  padding: 18px;
  font-size: 25px;
  letter-spacing: 10px;
}

/* 2.4 COPYRIGHT, CONSULTANCY & DATE */
.copyright,
.consultancy,
.up-date {
  position: fixed;
  color: #000;
  font-size: 12px;
  font-family: Arial, sans-serif;
  z-index: 3;
}

.copyright {
  top: 7px;
  left: 10px;
}

/* CONSULTANCY */
.consultancy {
  top: 23px;
  left: 10px;
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}

.consultancy.visible {
  opacity: 1;
}

.up-date {
  bottom: 7px;
  right: 10px;
}

/* ==========================================================
   3. RESPONSIVE OVERRIDES
   ========================================================== */

/* 3.1 PORTRAIT ORIENTATION */
@media (orientation: portrait) {
  .container {
    width: 80vw;
    width: 80dvw;
  }
}

/* 3.2 SMALL SCREENS (<= 768px) */
@media (max-width: 768px) {
  .caption span.border {
    font-size: 15px;
    letter-spacing: 6px;
    padding: 12px;
  }

  .container img[src$="murmurations.jpg"],
  .container img[src$="starlings.gif"] {
    width: 80vw;
    width: 80dvw;
    max-height: 80vh;
    max-height: 80dvh;
  }
}

/* 3.3 MEDIUM SCREENS (<= 1420px) */
@media (max-width: 1420px) {
  .copyright,
  .consultancy,
  .up-date {
    font-size: 10px;
  }
}

/* 3.4 EXTRA SMALL PORTRAIT PHONES (<= 400px width) */
@media (max-width: 400px) and (orientation: portrait) {
  .caption {
    top: 65%;
  }
  .caption span.border {
    font-size: 13px;
    letter-spacing: 4px;
    padding: 10px;
  }
}