/* ============================================================
   Northern Story — Split-Screen Landing
   ============================================================ */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  height: 100%;
  width: 100%;
  overflow: hidden;
}

body {
  display: flex;
  flex-direction: column;
}

/* ── Site header ──────────────────────────────────────────── */

.site-header {
  flex-shrink: 0;
  height: 48px;
  background: #fff;
  border-bottom: 1px solid rgba(0, 0, 0, 0.07);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
}

.site-header__logo {
  font-family: 'Inter', Helvetica, sans-serif;
  font-size: 0.6rem;
  font-weight: 300;
  letter-spacing: 0.45em;
  text-transform: uppercase;
  color: #111;
  white-space: nowrap;
  user-select: none;
}

/* ── Site footer ──────────────────────────────────────────── */

.site-footer {
  flex-shrink: 0;
  height: 48px;
  background: #fff;
  border-top: 1px solid rgba(0, 0, 0, 0.07);
  display: flex;
  align-items: center;
  justify-content: center;
}

.site-footer__contact {
  font-family: 'Inter', Helvetica, sans-serif;
  font-size: 0.6rem;
  font-weight: 300;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #111;
  text-decoration: none;
  transition: color 0.25s ease;
}

.site-footer__contact:hover {
  color: #888;
}

/* ── Panels container ─────────────────────────────────────── */

.panels {
  display: flex;
  flex: 1;
  min-height: 0;
  width: 100vw;
}

/* ── Individual panel ─────────────────────────────────────── */

.panel {
  flex: 1;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  overflow: hidden;
  transition: flex 0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Soft dividers between panels */
.panel + .panel {
  border-left: 1px solid rgba(255, 255, 255, 0.07);
}

/* Dim overlay on all panels; cleared on the hovered one */
.panel::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0);
  transition: background 0.5s ease;
  pointer-events: none;
}

.panels:has(.panel:hover) .panel:not(:hover)::after {
  background: rgba(0, 0, 0, 0.3);
}

/* ── Panel backgrounds ────────────────────────────────────── */
/*    Drop the real photo in by uncommenting background-image  */

.panel--s {
  background-image: url('images/grand-bend-strip.jpg');
  background-size: cover; background-position: center;
  /* background: linear-gradient(155deg, #1a0c00 0%, #2e1500 45%, #160900 100%); */
}

.panel--h {
  /* background-image: url('images/hill-jump.jpg'); */
  /* background-size: cover; background-position: center; */
  background: linear-gradient(155deg, #060e06 0%, #0d1e0e 45%, #060d06 100%);
}

.panel--i {
  background-image: url('images/iqaluit-101.jpg');
  background-size: cover; background-position: center;
  /* background: linear-gradient(155deg, #010812 0%, #041228 45%, #010812 100%); */
}

.panel--p {
  background-image: url('images/casey-lessard.jpg');
  background-size: cover; background-position: center;
  /* background: linear-gradient(155deg, #0a0a14 0%, #14142a 45%, #0a0a14 100%); */
}

/* ── Panel expansion on hover ─────────────────────────────── */

.panels:has(.panel:hover) .panel {
  flex: 0.65;
}

.panels .panel:hover {
  flex: 2.4;
}

/* ── Inner content layout ─────────────────────────────────── */

.panel__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.1rem;
}

/* ── The big letter ───────────────────────────────────────── */

.panel__letter {
  display: block;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(4.5rem, 7vw, 8.5rem);
  font-weight: 300;
  line-height: 1;
  color: rgba(255, 255, 255, 0.8);
  transition:
    transform  0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    color      0.4s ease;
}

.panel:hover .panel__letter {
  transform: translateY(-0.5rem);
  color: rgba(255, 255, 255, 1);
}

/* ── Project name + arrow ─────────────────────────────────── */

.panel__meta {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  opacity: 0;
  transform: translateY(0.4rem);
  transition:
    opacity    0.35s ease 0.08s,
    transform  0.35s ease 0.08s;
}

.panel:hover .panel__meta {
  opacity: 1;
  transform: translateY(0);
}

.panel__name {
  font-family: 'Inter', Helvetica, sans-serif;
  font-size: 0.6rem;
  font-weight: 300;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
  white-space: nowrap;
}

.panel__arrow {
  font-size: 0.7rem;
  color: rgba(255, 255, 255, 0.4);
  line-height: 1;
  transition: color 0.3s ease;
}

.panel:hover .panel__arrow {
  color: rgba(255, 255, 255, 0.7);
}

/* ── Mobile: stack into four horizontal rows ──────────────── */

@media (max-width: 768px) {

  html, body {
    overflow-y: auto;
    overflow-x: hidden;
  }

  .panels {
    flex-direction: column;
    height: auto;
    min-height: 0;
    width: 100vw;
  }

  .panel {
    flex: none;
    height: 25dvh;
    min-height: 120px;
    transition: none;
    border-left: none;
  }

  /* Horizontal dividers in stacked layout */
  .panel + .panel {
    border-left: none;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
  }

  /* Disable flex-grow hover behaviour on touch layouts */
  .panels:has(.panel:hover) .panel {
    flex: none;
    height: 25dvh;
  }

  .panels .panel:hover {
    flex: none;
    height: 25dvh;
  }

  /* Always show project name on mobile */
  .panel__meta {
    opacity: 1;
    transform: translateY(0);
  }

  /* Dim overlay not needed at mobile scale */
  .panels:has(.panel:hover) .panel:not(:hover)::after {
    background: rgba(0, 0, 0, 0);
  }

  .panel__letter {
    font-size: clamp(3rem, 10vw, 5rem);
  }

  .panel__name {
    font-size: 0.55rem;
  }

}
