/*
 * RESET
 *
 *
 */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}
body {
  line-height: 1;
}
ol, ul {
  list-style: none;
}
blockquote, q {
  quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
@viewport {
  width: device-width;
}

:root {
  --mono: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace;
  --sans-serif: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;

  --f-sm: 0.8rem;
  --f-m: .915rem;
  --f-l: 1.25rem;
  --f-xl: 1.563rem;
  --f-xxl: 1.953rem;

  --c-main-50: rgb(249, 249, 249);
  --c-main-100: rgb(242, 242, 243);
  --c-main-200: rgb(224, 224, 226);
  --c-main-300: rgb(201, 201, 204);
  --c-main-400: rgb(164, 164, 169);
  --c-main-500: rgb(141, 141, 147);
  --c-main-600: rgb(99, 99, 105);
  --c-main-700: rgb(99, 99, 105);
  --c-main-800: rgb(75, 75, 79);
  --c-main-900: rgb(57, 57, 60);
}

body {
  font-family: var(--sans-serif);
  line-height: 1.5;
  background-color: #fff;
  color: var(--c-main-900);
  padding: 2rem 1rem;
}

img {
  vertical-align: middle;
}

header {
  font-size: var(--f-l);
  font-weight: bold;
  text-transform: uppercase;
  line-height: 1.1;
  margin-bottom: 2rem;
}

header .byline {
  font-family: var(--serif);
  font-size: var(--f-m);
  font-weight: normal;
  font-style: italic;
  text-transform: none;
  color: var(--c-main-600);
}

header a:any-link {
  color: var(--c-main-900);
  text-decoration: none;
}

.page {
  max-width: 100rem;
  margin: 1rem auto;
}

.photos-list {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

.photo-single {
  position: relative;
  display: block;
}

.photos-list img {
  position: absolute;
  top: 0;
  width: 100%;
  vertical-align: bottom;
}

.photo-detail img {
  max-width: 100%;
  max-height: 95vh;
  height: auto;
  width: auto;
}

.photo-detail > div {
  font-size: var(--f-sm);
  margin-top: 2rem;
}

.photo-detail figcaption {
  font-family: var(--serif);
  font-size: var(--f-m);
  font-style: italic;
  color: var(--c-main-900);
  max-width: 25rem;
}

.photo-detail figcaption + p {
  margin-top: .5rem;
}
