html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;}
body {
	line-height: 1;}
ol, ul {
	list-style: none;}
blockquote, q {
	quotes: none;}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;}
table {border-collapse: collapse;
	border-spacing: 0;}
/*separation of reset*/
body {
  margin: 0;
  height: 100vh;
  overflow: hidden;
  cursor: crosshair;
  position: relative;
  font-family: sans-serif;
  color: white;
}

/* === Background Video === */
#bg-video {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  object-fit: cover;
  z-index: -2;
}

/* Overlay for readability */
#overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.25);
  z-index: -1;
}

/* === Runner === */
.runner {
  position: absolute;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  color: white;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 25px rgba(255, 75, 43, 0.5);
  user-select: none;
  transform: translate(-50%, -50%);
  animation: colorCycle 0.5s infinite;
  cursor: pointer;
  transition: transform 0.2s ease;
  z-index: 1000;
}

.runner:active {
  transform: translate(-50%, -50%) scale(0.95);
}

@keyframes colorCycle {
  0%   { background-color: red; }
  25%  { background-color: yellow; }
  50%  { background-color: blue; }
  100% { background-color: rgb(128, 0, 128); }
}

.caught {
  animation: caughtEffect 0.8s ease forwards;
}

@keyframes caughtEffect {
  0% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
  50% { transform: translate(-50%, -50%) scale(1.3); opacity: 1; }
  100% { transform: translate(-50%, -50%) scale(0); opacity: 0; }
}

/* === L3 spinning image === */
.L3 {
  position: fixed;
  top: 50%;
  left: 40%; /* 10% left of center */
  transform: translate(-50%, -50%);
  width: 50vw;
  height: auto;
  z-index: 10;
  animation: colorCycle 1s infinite, spin 3s linear infinite;
  transition: transform 0.3s ease;
  cursor: pointer;
}

@keyframes spin {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to   { transform: translate(-50%, -50%) rotate(360deg); }
}

/* === Media placements === */
.media-bottom-left {
  position: fixed;
  bottom: 10px;
  left: 10px;
  z-index: 999;
}

.media-bottom-right {
  position: fixed;
  bottom: 10px;
  right: 10px;
  z-index: 999;
}

.media-top-right {
  position: fixed;
  top: 10px;
  right: 10px;
  z-index: 999;
}

video,
audio {
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

.L3 img {
  width: 100%;
  border-radius: 20px;
}
