#glitchyText {
  text-align: right;   
  color: white;
  font-weight: bold;
  white-space: pre;
}

.char {
  display: inline-block;
  transition: transform 0.04s ease;
}

#picture {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  align-self: center;
  width: 20%;
  cursor: url('cursor02.png'), auto;
}

#links {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0;
  padding: 4vh;
}

#links a {
  font-weight: normal;
}

#links img {
  border: 2px grey outset;
}

#updates {
  overflow-y: auto;
  width: 45%;
  height: 900px;
  margin: 2rem auto;
  padding: 0 20px;
  border: 2px dashed black;
  text-align: justify;
  line-height: 1.4;
  color: #CBA6F7;
  background-image: url('background01.png');
  background-repeat: repeat;
  z-index: 1;
}

#updates .updates-header {
  margin-bottom: 1rem;
  text-align: center;
  font-weight: bold;
  font-size: 0.875rem;
  color: #e3c9ff;
}

#updates .update-item + .update-item {
  margin-top: 1.5rem;
}

#updates .update-title {
  margin: 0;
  font-weight: bold;
  font-size: 0.75rem;
}

#updates .bullet {
  margin-right: 0.25em;
  color: white;
}

#updates .title-text {
  color: #e3c9ff;
}

#updates .date {
  margin-left: 0.5em;
  font-style: italic;
  font-size: 0.625rem;
  color: white;
}

#updates .update-msg {
  margin: 0.25rem 0 0;
  font-size: 0.625rem;
  text-indent: 2ch;
  color: #CBA6F7;
}

#updates a {
  color: inherit;
  text-decoration: none;
}

#gallery {
  position: relative;
  width: 50%;
  height: auto;
  overflow: hidden;
  margin: 0 auto;
}

.vhs-container {
  display: flex;
  justify-content: center;
  position: relative;
  width: 100%;
  height: 300px;
  margin: 0 auto;
  overflow: hidden;
  background: black;
  border-radius: 8px;
  filter: url(#screen-curvature);
  animation: brightness-flicker 0.1s steps(2) infinite;
  padding: 20px;
}

.vhs-container img {
  display: block;
  margin: 0 auto;
  cursor: url('cursor02.png'), auto;
}

.vhs-container .vhs-title {
  position: absolute;
  display: flex;
  justify-content: center;
  font-size: 8px;
  text-align: center;
  color: white;
  opacity: 0;
  background-color: rgba(0,0,0,0.7);
  padding: 2px 4px;
  border-radius: 2px;
  text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000;
  transition: opacity .15s ease-in-out;
}

.vhs-container:hover .vhs-title { opacity: 1; }

.vhs-container .bars {
  pointer-events: none;
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(to right, rgba(0,0,0,0.3) 0,
              rgba(0,0,0,0.3) 2px, transparent 2px, transparent 8px);
  filter: blur(1px);
  animation: bars-scroll 0.3s linear infinite;
}

.vhs-container .scanlines {
  pointer-events: none;
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(to bottom, rgba(0,0,0,0.1) 0,
              rgba(0,0,0,0.1) 1px, transparent 1px, transparent 2px);
  mix-blend-mode: multiply;
  animation: scanlines-flicker 0.2s linear infinite, scanlines-horizontal 5s linear infinite;
}

.vhs-container .noise-canvas {
  position: absolute;
  inset: 0;
  pointer-events: none;
  mix-blend-mode: overlay;
  opacity: 0.2;
}

.vhs-slot {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

@keyframes scanlines-flicker { 0%,100% { background-position: 0 0; opacity: 0.1 }
                                50% { background-position: 0 4px; opacity: 0.2 } }
@keyframes scanlines-horizontal { from { background-position-y: 0 }
                                to { background-position-y: 100% } }
@keyframes bars-scroll { from { background-position-x: 0 }
                                to { background-position-x: 4px } }
@keyframes brightness-flicker { 0%,100% { filter: brightness(0.85) }
                                50% { filter: brightness(1) } }

@media (min-width: 1601px) { #links { transform: scale(1.4); }  
                            #gallery { transform: scale(1.2); transform-origin: top center; } }