* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  min-width: 0;
}

:root {
    color-scheme: light dark;
  --spacer-1: 0.25rem;
  --spacer-2: 0.5rem;
  --spacer-3: 0.75rem;
  --spacer-4: 1rem;
  --spacer-5: 1.5rem;
  --spacer-6: 2rem;
  --spacer-7: 3rem;
  --spacer-8: 4rem;
  --border-radius-1: 0.25rem;
  --border-radius-2: 0.5rem;
  --border-radius-3: 10rem;
  --box-shadow-1: 0.25rem 0.25rem 0rem var(--color);
  --box-shadow-2: 0.5rem 0.5rem 0rem var(--color);
  --z-index-base: 0;
  --z-index-overlay: 1;
  --z-index-above-overlay: 2;
  --z-index-header: 3;
  --z-index-menubar: 10;
  --z-index-modal: 20;
  --z-index-tooltip: 30;
  --pink: #ff90e8;
  --purple: #90a8ed;
  --green: #23a094;
  --orange: #ffc900;
  --red: #dc341e;
  --yellow: #f1f333;
  --breakpoint-sm: 640px;
  --breakpoint-lg: 1024px;
  --success: 100 180 170;
  --contrast-success: 0 0 0;
  --warning: 255 201 0;
  --contrast-warning: 0 0 0;
  --danger: 220 52 30;
  --contrast-danger: 255 255 255;
  --info: 144 168 237;
  --contrast-info: 0 0 0;
  --accent: #2196f3;
  --contrast-accent: 0 0 0;
  --primary: 0 0 0;
  --contrast-primary: 255 255 255;
  --contrast-accent: 0 0 0;
  --primary: 0 0 0;
  --contrast-primary: 255 255 255;
  --black: 0 0 0;
  --contrast-black: 255 255 255;
  --filled: 255 255 255;
  --contrast-filled: 0 0 0;
  --color: 0 0 0;
  --body-bg: #f4f4f0;
  --border-alpha: 1;
  --font-family:
    Alice,
    Avenir,
    Montserrat,
    Corbel,
    URW Gothic,
    source-sans-pro,
    sans-serif;
  --border-width: 0.0625rem;
  --big-icon-size: 1.25em;
  --active-bg: rgb(var(--filled));
  --main-stack-width: 28rem;
  --dynamic-grid: min(100%, calc((31.25rem - 100%) * 1000));
  --disabled-opacity: 0.3;
  --form-element-height: 3.025rem;
  --transition-duration: 0.14s;
}

 body {
  background-color: #f4f4f0;
  margin: 2.5rem 1rem 0 1rem;
  display: grid;
  gap: 2rem;
  justify-content: center;
  text-align: center;
  font-family: "Alice", sans-serif;
}

a {
  text-decoration: underline;
  color: currentColor;
  cursor: pointer;
}

nav > ul {
  list-style: none;
  display: grid;
  gap: 1rem;
}

@media (min-width: 640px) {
  nav > ul {
    grid-auto-flow: column;
    gap: 1.5rem;
  }
}

h1 {
  font-size: 2.5rem;
  line-height: 1.2;
  font-weight: normal;
}

hr {
  border: none;
  border-top: solid 0.125rem currentColor;
  width: 12.5rem;
  margin: auto;
}

img {
  height: auto;
  max-width: 100%;
}
[role=alert],
[role=status] {
  /* display: grid; */
  grid-template-columns: 1fr;
  align-items: start;
  padding: .75rem;
  gap: .5rem;
  border: solid .0625rem rgb(var(--parent-color)/var(--border-alpha));
  border-radius: .25rem;
}
[role=alert].success,
[role=status].success {
  border-color: rgb(var(--success));
  background-color: rgb(var(--success)/0.2);
}
[role=alert].success::before,
[role=status].success::before {
  width: 1lh;
  color: rgb(var(--success));
  grid-column: -3;
}
[role=alert].danger,
[role=status].danger {
  border-color: rgb(var(--danger));
  background-color: rgb(var(--danger)/0.2);
}
[role=alert].danger::before,
[role=status].danger::before {
  width: 1lh;
  color: rgb(var(--danger));
  grid-column: -3;
}
[role=alert].warning,
[role=status].warning {
  border-color: rgb(var(--warning));
  background-color: rgb(var(--warning)/0.2);
}
[role=alert].warning::before,
[role=status].warning::before {
  width: 1lh;
  color: rgb(var(--warning));
  grid-column: -3;
}
[role=alert].info,
[role=status].info {
  border-color: rgb(var(--info));
  background-color: rgb(var(--info)/0.2);
}
[role=alert].info::before,
[role=status].info::before {
  width: 1lh;
  color: rgb(var(--info));
  grid-column: -3;
}
[role=alert] .close,
[role=status] .close {
  align-self: center;
  grid-column: 1;
}
@media (min-width: 640px) {
  [role=alert] .close,
  [role=status] .close {
    grid-column: 2;
  }
}

@font-face {
  font-family: "Alice";
  src: url("Alice-Regular.ttf");
}

@media (prefers-color-scheme: dark) {
  :root {
    --body-bg: #111;         
    --color: 255 255 255;   
    --filled: 30 30 30;     
  }

  body {
    background-color: var(--body-bg);
    color: rgb(var(--color));
  }

  a {
    color: rgb(var(--purple));
  }

  hr {
    border-top-color: rgba(255,255,255,.3);
  }
}

.gallery {
  display: grid;
  gap: var(--spacer-4);
    grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .gallery {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .gallery {
    grid-template-columns: repeat(4, 1fr);
  }
}

.gallery-item {
  overflow: hidden;
  border-radius: var(--border-radius-2);
  box-shadow: var(--box-shadow-1);
  background: rgb(var(--filled));
}

.gallery-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  
  aspect-ratio: 1 / 1;
  
  transition: transform var(--transition-duration);
}

.gallery-item:hover img {
  transform: scale(1.05);
}