html, body { margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; line-height: 1.6; }
*, *::before, *::after { box-sizing: border-box; }
.container { max-width: 880px; margin: 0 auto; padding: 1.25rem; }
.site-header { border-bottom: 1px solid #eaeaea; position: sticky; top: 0; background: #fff; z-index: 1000; }
.site-header .container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
}
.brand { font-weight: 600; margin-right: 0; text-decoration: none; color: inherit; display: block; }
.nav a { margin-right: 0; text-decoration: none; color: #444; }


.nav a:hover,
.nav a:active {
  color: #444;
  text-decoration: underline;
  opacity: 1; /* prevents fade from global link styles */
}

.nav { display: flex; flex-wrap: wrap; gap: 0.75rem; }

a, a:visited {
  color: #000;
  text-decoration: none;
}
a:hover {
  color: #000;
  text-decoration: underline;
  opacity: 0.85;
}
a:active {
  color: #000;
  text-decoration: underline;
}
main.container { padding-top: 1.25rem; }
.site-footer { border-top: 1px solid #eaeaea; margin-top: 2rem; font-size: 0.9rem; color: #666; }

/* Gallery grid */
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.gallery figure { margin: 0; }
.gallery img { width: 100%; height: auto; display: block; border-radius: 6px; }

.profile-pic {
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  display: block;
  margin: 1rem 0;
}

.banner, .logo-banner {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 0 1rem 0;
  border-radius: 8px;
}

/* Portrait landing tiles */
.tile-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
}
.tile {
  text-decoration: none;
  color: inherit;
}
.tile .thumb {
  width: 100%;
  padding-top: 100%;           /* perfect square */
  border-radius: 8px;
  background-size: cover;
  background-position: center;
  background-color: #f2f2f2;   /* fallback if no image yet */
}
.tile .title {
  display: block;
  text-align: center;
  margin-top: 8px;
  font-weight: 600;
}

/* Sub-page long-scroll images + captions */
.portfolio-img {
  width: 100%;
  height: auto;
  display: block;
  margin: 0 0 1rem 0;
  border-radius: 8px;
}
.caption {
  margin: 0 0 2rem 0;
  color: #666;
  font-size: 0.95rem;
}

/* === Updated additions for banner + portrait tiles === */

/* Tile interactions + accessibility */
.tile .thumb { transition: transform 160ms ease; }
@media (prefers-reduced-motion: reduce) {
  .tile .thumb { transition: none; }
}
.tile:hover .thumb,
.tile:focus .thumb,
.tile:focus-visible .thumb { transform: scale(1.02); }
.tile:focus,
.tile:focus-visible { outline: none; }
.tile:focus-visible .thumb { box-shadow: 0 0 0 3px rgba(0,0,0,0.12); }

/* Navigation links (Previous/Next) */
.nav-links {
  display: flex;
  justify-content: space-between;
  margin: 2rem 0;
  font-size: 0.95rem;
}

.nav-links a {
  color: #444;
  text-decoration: none;
}

.nav-links a:hover {
  text-decoration: underline;
}

.nav-links .disabled {
  color: #bbb;
  pointer-events: none;
  text-decoration: none;
}

/* Footer social icon */
.social-icon {
  width: 24px;
  height: 24px;
  display: inline-block;
  vertical-align: middle;
  opacity: 0.9;
}
.social-icon:hover { opacity: 1; }

/* Footer social container alignment + sizing */
.footer-social {
  text-align: left;
}
.footer-social a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* Header brand logo */
.brand-logo {
  height: 58px;       /* explicit height to avoid 0-sized SVGs */
  width: auto;
  display: block;
  margin: 0 0 0.25rem 0;
}

/* Ensure header nav links stay consistent (visited/hover/active) */
.site-header .nav a,
.site-header .nav a:visited {
  color: #444;
  text-decoration: none;
}

.site-header .nav a:hover,
.site-header .nav a:active {
  color: #444;
  text-decoration: underline;
  opacity: 1;
}