@import url("https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&display=swap");

* {box-sizing: border-box; margin: 0; padding: 0}
body {background: #000000; font-family: "Arial", sans-serif; min-height: 100vh; overflow: hidden}
.container {align-items: center; display: flex; height: 100vh; justify-content: center; position: relative; width: 100vw}

.ASCIIContent {-webkit-mask-image: linear-gradient(to right, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.8) 30%, rgba(0, 0, 0, 0.6) 50%, rgba(0, 0, 0, 0.4) 80%, rgba(0, 0, 0, 0.2) 100%); animation: Glitch 0.1s infinite linear alternate-reverse; box-sizing: border-box; clip-path: inset(0 calc(100% - var(--clip-left, 0%)) 0 0); color: rgba(220, 210, 255, 0.6); font-family: "Courier New", monospace; font-size: 11px; height: 100%; left: 0; line-height: 13px; margin: 0; mask-image: linear-gradient(to right, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.8) 30%, rgba(0, 0, 0, 0.6) 50%, rgba(0, 0, 0, 0.4) 80%, rgba(0, 0, 0, 0.2) 100%); overflow: hidden; padding: 0; position: absolute; text-align: left; top: 0; vertical-align: top; white-space: pre; width: 100%}
@keyframes Glitch {
	0% {opacity: 1}
	15% {opacity: 0.9}
	16% {opacity: 1}
	49% {opacity: 0.8}
	50% {opacity: 1}
	99% {opacity: 0.9}
	100% {opacity: 1}
}

.Credits {bottom: 20px; color: #FF9A9C; font-family: "Roboto Mono", monospace; font-size: 12px; font-weight: 900; left: 50%; position: fixed; text-align: center; transform: translateX(-50%); z-index: 1000}
.Credits a {color: #FF9A9C; text-decoration: none; transition: color 0.3s ease}
.Credits a:hover {color: #FF7A7C}

.Card {border-radius: 15px; clip-path: inset(0 calc(100% - var(--clip-left, 0%)) 0 0); height: 250px; left: 0; overflow: hidden; position: absolute; top: 0; width: 400px}
.CardASCII {background: transparent; border-radius: 15px; height: 250px; left: 0; overflow: hidden; position: absolute; top: 0; width: 400px; z-index: 1}
.CardImage {border-radius: 15px; box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.1); filter: brightness(1.1) contrast(1.1); height: 100%; object-fit: cover; transition: all 0.3s ease; width: 100%}
.CardImage:hover {filter: brightness(1.2) contrast(1.2)}
.CardLine {align-items: center; cursor: grab; display: flex; gap: 60px; user-select: none; white-space: nowrap; will-change: transform}
.CardLine:active {cursor: grabbing}
.CardLine.Dragging {cursor: grabbing}
.CardNormal {background: transparent; box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4); clip-path: inset(0 0 0 var(--clip-right, 0%)); color: white; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 0; position: relative; z-index: 2}
.CardStream {align-items: center; display: flex; height: 180px; overflow: visible; position: absolute; width: 100vw}
.CardWrapper {flex-shrink: 0; height: 250px; position: relative; width: 400px}

.ScanEffect {animation: ScanEffect 0.6s ease-out; background: linear-gradient(90deg, transparent, rgba(0, 255, 255, 0.4), transparent); height: 100%; left: 0; pointer-events: none; position: absolute; top: 0; width: 100%; z-index: 5}
@keyframes ScanEffect {
	0% {opacity: 0; transform: translateX(-100%)}
	50% {opacity: 1}
	100% {opacity: 0; transform: translateX(100%)}
}

.SpeedIndicator {color: rgba(255, 255, 255, 0.5); font-family: "Roboto Mono", monospace; font-size: 14px; font-weight: 700; left: 20px; position: fixed; top: 20px; z-index: 1000}

#ParticleCanvas {height: 250px; left: 0; pointer-events: none; position: absolute; top: 50%; transform: translateY(-50%); width: 100vw; z-index: 0}
#ScannerCanvas {height: 300px; left: -3px; pointer-events: none; position: absolute; top: 50%; transform: translateY(-50%); width: 100vw; z-index: 15}