diff --git a/src/lib/components/Gallery.svelte b/src/lib/components/Gallery.svelte
index 8645dbf..30e5258 100644
--- a/src/lib/components/Gallery.svelte
+++ b/src/lib/components/Gallery.svelte
@@ -1,5 +1,12 @@
-
- {#each (items || album.items) as item (item.item)}
-
+
@@ -37,4 +143,135 @@
list-style: none;
gap: 1em;
}
+
+ li {
+ position: relative;
+ height: fit-content;
+ border-radius: 10px;
+ transition: border-radius .5s;
+ }
+
+ figure {
+ width: var(--image-width, 28.125em);
+ height: var(--image-height, 18.75em);
+ background-position: center;
+ background-size: cover;
+ overflow: hidden;
+ border-radius: 10px;
+ transition: background-color .5s, background-image .5s;
+ margin: 0 auto;
+ }
+
+ li:not(.test) figure {
+ background-color: rgba(0,0,0,.25);
+ background-image: linear-gradient(rgba(0,0,0,.125), rgba(0,0,0,.25)), var(--image);
+ }
+
+ picture {
+ position: relative;
+ }
+
+ img {
+ width: var(--image-width, 28.125em);
+ height: var(--image-height, 18.75em);
+ object-fit: contain;
+ object-position: center;
+ top: 0;
+ border-radius: 10px;
+ overflow: hidden;
+ clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
+ transform: scale(1.001);
+ transition: transform .5s cubic-bezier(.23,.13,.45,.97), clip-path .5s cubic-bezier(.23,.13,.45,.97);
+ }
+
+ li:not(.test) img {
+ position: absolute;
+ }
+
+ figcaption {
+ display: grid;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ padding: 1.5em;
+ opacity: 0;
+ transition: opacity .5s, background-color .5s;
+ z-index: 1;
+ gap: .25em;
+ pointer-events: none;
+ }
+
+ strong {
+ font-size: 1.25em;
+ letter-spacing: .05em;
+ }
+
+ cite {
+ font-size: .75em;
+ font-weight: normal;
+ font-style: normal;
+ opacity: .8;
+ }
+
+ a {
+ display: grid;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: transparent;;
+ color: transparent;
+ text-decoration: none;
+ transition: background-color .5s, color .5s;
+ justify-content: center;
+ align-content: center;
+ border-radius: 10px;
+ overflow: hidden;
+ }
+
+ li:not(.test) a:focus {
+ outline: 2px solid var(--main-text-color);
+ }
+
+ li:not(.test):hover img {
+ transform: scale(1.25);
+ }
+
+ li:hover figcaption {
+ opacity: 1;
+ }
+
+ li:hover a {
+ background-color: rgba(0,0,0,.75);
+ color: inherit;
+ }
+
+ li.test {
+ --image-width: 100%;
+ --image-height: 100vh;
+ z-index: 1;
+ position: fixed;
+ border-radius: 0;
+ top: 0;
+ left: 0;
+ width: 100vw;
+ height: 100vh;
+ }
+
+ li.test figure {
+ background-color: rgba(0,0,0,0);
+ background-image: none;
+ }
+
+ li.test figcaption {
+ background-color: rgba(0,0,0,.75);
+ opacity: 1;
+ }
+
+ li.test a {
+ background-color: rgba(0,0,0,.75);
+ z-index: -1;
+ }