/* ========================================
   Ensoul Screensaver — v2.0.0
   ======================================== */

.ens-screensaver {
	position: fixed;
	inset: 0;
	/* Sits above EVERYTHING the site can put on screen — including the
	   nav header, the modal menu, and any fixed widgets like the
	   weather/Udine readouts. Stops one short of the int max so the
	   perf debugger overlay can still appear on top during dev. */
	z-index: 2147483646;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	/* Pure black, hard-coded — do NOT inherit a theme variable that may
	   be a near-black like #0a0a0a. The whole saver area must read as
	   absolute #000000, including the gap left after the snake has
	   eaten the logo and the trail has decayed. */
	background-color: #000000;
	background-image: none;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	cursor: none;
}

/* Belt-and-braces: every descendant inherits a transparent background
   so the saver's solid #000000 always shows through. The canvas and
   the <pre> are already transparent by default; this is here for any
   future child element. */
.ens-screensaver,
.ens-screensaver * {
	background-color: transparent;
}
.ens-screensaver {
	background-color: #000000;
}

/* Snake canvas sits on top of the logo + message, full-viewport.
   pointer-events:none keeps the saver dismissable by any input. */
.ens-screensaver__snake {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 2;
}

.ens-screensaver--active {
	visibility: visible;
	pointer-events: auto;
}

.ens-screensaver__logo {
	margin: 0;
	padding: 0;
	font-family: var(--font-mono, 'Courier New', Courier, monospace);
	font-size: clamp(0.28rem, 0.65vw, 0.6rem);
	line-height: 1;
	letter-spacing: 0.02em;
	white-space: pre;
	color: #108a38;
}

.ens-screensaver__logo-line {
	display: block;
	opacity: 0;
}

.ens-screensaver__logo-line--visible {
	opacity: 1;
}

.ens-screensaver__message {
	margin-top: 2em;
	font-family: var(--font-mono, 'Courier New', Courier, monospace);
	font-size: clamp(0.55rem, 0.85vw, 0.8rem);
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: #108a38;
	opacity: 0;
}
