h2 {
	padding: 0.9rem 0 0 2rem;
	font-size: 36px;
	line-height: 0.9em;
	font-weight: 600;
	text-transform: none;
}

.main-container {
	min-width: 640px;
	max-width: 99%;
	margin: auto;
	background-color: white;
	border-radius: 15px;
}

#photo-grid {
	padding-top: 1rem;
}

.folder-container {
    position: relative;
    display: inline-block;
}

.folder-image {
    max-width: 250px;
    max-height: 165px;
    object-fit: cover;
    border-radius: 1.25vw;
    padding: 0.5rem;
}

.large-image {
	max-width: 575px;
	width: 100%;
    max-height: 475px;
	object-fit: cover;
	border-radius: 1.25vw;
	padding-bottom: 0.5rem;
}

@media screen and (max-width: 780px) {
	h2 {
		font-size: 32px;
		line-height: 0.9em;
		font-weight: 500;
	}
	.large-image {
		max-width: 400px;
    	max-height: 300px;
		border-radius: 2.5vw;
		padding: 0.8rem;
	}

	.folder-image {
    	max-width: 200px;
    	max-height: 150px;
		border-radius: 1.75vw;
		padding: 0.3rem;
}
}

.folder-heading {
    position: absolute;
    bottom: 10px;
    margin-right: 10px;
    color: white;
    background-color: rgba(0, 0, 0, 0.5);
    padding: 5px 10px;
}

.htmx-invisible {
	display: none;
}

.autoplay {
	padding-left: 1vw;
	padding-bottom: 1vh;
}

.footer {
	padding-left: 0.5vw;
}

.button {
	cursor: pointer;
	font-size: 1rem;
	font-family: inherit;
	font-weight: 700;
	color: hsl(0, 0%, 100%);
	background-color: hsl(0, 0%, 1%);
	padding: 0.8em 1em 1em 0.8em;
	border: 0;
	border-radius: 1.25rem;
	display: inline-flex;
	align-items: flex-end;
	gap: 0.5em;
}

.glow-effect {
  --glow-line-color: #fff;
  --glow-line-thickness: 2px;
  --glow-line-length: 20px;
  --glow-blur-color: #fff;
  --glow-blur-size: 5px;
  --glow-offset: 0px;
  --animation-speed: 1200ms;
  --container-offset: 100px;
  position: relative;
}

.glow-container {
  pointer-events: none;
  position: absolute;
  inset: calc(var(--container-offset) / -2);
  width: calc(100% + var(--container-offset));
  height: calc(100% + var(--container-offset));
  opacity: 0;
}

.glow-blur,
.glow-line {
  width: calc(100% - var(--container-offset) + var(--glow-offset));
  height: calc(100% - var(--container-offset) + var(--glow-offset));
  x: calc((var(--container-offset) / 2) + calc(var(--glow-offset) / -2));
  y: calc((var(--container-offset) / 2) + calc(var(--glow-offset) / -2));
  fill: transparent;
  stroke: black;
  stroke-width: 5px;
  stroke-dasharray: var(--glow-line-length) calc(50px - var(--glow-line-length));
}

.glow-effect:is(:hover, :focus) :is(.glow-line, .glow-blur) {
  stroke-dashoffset: -80px;
  transition: stroke-dashoffset var(--animation-speed) ease-in;
}

.glow-line {
  stroke: var(--glow-line-color);
  stroke-width: var(--glow-line-thickness);
}

.glow-blur {
  filter: blur(var(--glow-blur-size));
  stroke: var(--glow-blur-color);
  stroke-width: var(--glow-blur-size);
}

.glow-effect:is(:hover, :focus) .glow-container {
  animation: glow-visibility ease-in-out var(--animation-speed);
}

@keyframes glow-visibility {
  0%,
  100% {
    opacity: 0;
  }
  25%,
  75% {
    opacity: 1;
  }
}

.glow-effect[data-glow-animation="false"] {
  --glow-line-length: 50px;
}
.glow-effect[data-glow-offset="true"] {
  --glow-offset: 10px;
}

.glow-effect[data-glow-animation="grow"]:is(:hover, :focus) .glow-container {
  scale: 1.3;
  transition: scale var(--animation-speed) linear;
}

/***** MODAL DIALOG ****/
#modal {
	position: fixed;
	top:0px;
	bottom: 0px;
	left:0px;
	right:0px;
	background-color:rgba(0,0,0,0.25);
	z-index:1000;

	display:flex;
	flex-direction:column;
	align-items:center;

	animation-name: fadeIn;
	animation-duration:150ms;
	animation-timing-function: ease;
}

#modal > .modal-underlay {
	position: absolute;
	z-index: -1;
	top:0px;
	bottom:0px;
	left: 0px;
	right: 0px;
}

#modal > .modal-content {
	margin-top:6vh;
	width:90vw;
	max-width: fit-content;
	border:solid 1px #999;
	border-radius:8px;
	box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.3);
	background-color:white;
	padding:20px;

	animation-name:zoomIn;
	animation-duration:150ms;
	animation-timing-function: ease;
}

#modal.closing {
	animation-name: fadeOut;
	animation-duration:250ms;
	animation-timing-function: ease;
}

#modal.closing > .modal-content {
	animation-name: zoomOut;
	animation-duration:250ms;
	animation-timing-function: ease;
}

@keyframes fadeIn {
	0% {opacity: 0;}
	100% {opacity: 1;}
}

@keyframes fadeOut {
	0% {opacity: 1;}
	100% {opacity: 0;}
}

@keyframes zoomIn {
	0% {transform: scale(0.9);}
	100% {transform: scale(1);}
}

@keyframes zoomOut {
	0% {transform: scale(1);}
	100% {transform: scale(0.9);}
}