.splash {
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}

.flex-row,
  #animatedRing,
  header,
.flex-row {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.flex-column,
  body,
  .gallery-image,
  #signin-container,
  main,
  .container,
  .small-container,
.flex-column {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.gallery-image {
  justify-content: start;
}

main {
  grid-column-gap: 5vw;
  -webkit-column-gap: 5vw;
          column-gap: 5vw;
  margin: 5vw;
}

a {
  color: var(--wedding-color-rose);
}

a:visited,
a:hover {
  color: var(--wedding-color-orange);
}

.vertical-pad,
  /*.gallery-image,*/
  #signin-container,
  .container,
  .small-container,
  header h1,
.vertical-pad {  
  /*padding: 5vw;*/
  margin: 5vw 0 5vw 0;
}

#timeline {
  position: relative;
  /*width: 50vw;*/
  /*height: 100vw;*/
  width: 524px;
  height: 1048px;
}

#timeline canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

#emojilist {
  display: none;
}

header h1 {
  font-size: 36pt;
  
  width: calc(60vw - calc(2 * 1vw));
  
  background-color: var(--wedding-color-white);
  color: var(--wedding-color-grey-dark);
  
  border-color: var(--wedding-color-yellow);
  border-style: solid;
  border-width: 1vw;
  border-radius: 5vw;
  
  text-align: center;
}

h2 {
  
  font-size: 24pt;
  text-align: center;
}

main > h2 {
  
  position: absolute;
  
  /*width: 60vw;*/
  
  padding: 12.5px;
  
  /*background-color: var(--wedding-color-white);*/
  /*border-radius: 25px;*/
}

#animatedRing {
  position: absolute;
}

#animatedRing #sparkle {
  position: absolute;
  top: -25%;
  right: 15%;
  width: 25%;
  height: 25%;
}

/*#signin-container,*/
/*.gallery-image,*/
/*.container,*/
/*.small-container{*/
  
  /*width: 30vw;*/
  
/*  background-color: var(--wedding-color-white);*/
/*  color: var(--wedding-color-grey-dark);*/
  
/*  border-color: var(--wedding-color-green);*/
/*  border-style: solid;*/
/*  border-width: 1vw;*/
/*  border-radius: 2.5vw;*/
/*}*/

.gallery-image {
  position: relative;
  
  justify-content: flex-start;
  
  background-color: var(--wedding-color-white);
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAYAAADwdn+XAAABvElEQVQoUx2Qy2oTUQBAz53Jw1pDEtP6QBGLbaS40VbwgYrgQi1SEBQ3FargUvADXAhuBD/BnVs/QkGoFFwIYpu6KBGdNp20mWTmzsy987rSfsF5iGRrxchOByMVbn8PqRIiFaHSBCEsolijtCLRObFKiOMI3x/hS8W5qSlE7+dns7nyBdfZYbJZY7LZIC8KZByTpBlxovGDkMIIfCkZDUO01gQy5N6d64jXD26YmRMTdP9sk2Y5j54sMH54DNcbUimViPfpWYaMNL6MkEGIH2qkjLg2P4v4+GLR/FjvYhUF35w+714uMdGqs7PrYYBmvcYojImVJsfC8zzc/gjP82m3zyA+LC+YzobDIFRs+z5vXj1lY/U7WV6wtjVCV8o8Xrx9oByE4cGHPM/xBgGVskC8vTtvNncDVp0BezJm5liD53NtyiWboR/xaa3L+6X7ODpD2zZKpxiTkaYZly7MIlpHxk2jbCN1QpAXHK1WeDY3TS9QNMs2ty6fZ/2vS22siipVsCtl7KrFv96Qm1cvImzb3k/FtqyD+4dsi4fTpzhdr/LLDdBFypWzx8lyQWoE9ZMt3FFAWIWvvx3+A363+WwlBd4ZAAAAAElFTkSuQmCC");
  background-size: cover;
  color: var(--wedding-color-grey-light);
  text-shadow: 0 0 1vmin var(--wedding-color-grey-dark);
}

.gallery-image * {
  z-index: 1;
}

.gallery-image .photo {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}

.gallery-image .photo.loaded {
  opacity: 1;
}

.hide-if-empty:empty {
  display: none;
}

.hide {
  display: none;
}

wedding-card {
  opacity: 0;
}