/* Lightweight replacement for the vendored "Brutalist Framework".
   Contains only the rules actually used by this site, extracted verbatim
   from static/Brutalist-Framework/css/brutalist.min.2.3.3.css. Deliberately
   does NOT carry over that framework's `*{display:inline-block}` reset -
   that rule was silently turning every unstyled div into an inline-block
   box, which is what caused page content to overlap the video player. */

/* Note: the framework also carried html font-size media queries and h1-h6
   size overrides, but the old <link> tags loaded before Vite injected
   Tailwind's own stylesheet, so Tailwind's Preflight (font-size: inherit)
   already won that cascade fight in practice - confirmed empirically
   (a rendered h3's computed font-size matched html's, not the framework's
   claimed 2.92rem). Deliberately not reintroducing rules that weren't
   actually doing anything today. */

body {
	max-width: 100%;
}

.black-text-shadow,
.black-t-s {
	text-shadow: 2px 2px #000 !important;
}

.border-dashed-fat {
	border-style: dashed;
	border-width: 8px;
}

.white-t {
	color: #fff !important;
}

.psychedelic {
	background: linear-gradient(233deg, #e56420, #c22525, #3d9c31, #37bbde);
	background-blend-mode: hard-light;
	animation: hue-rotate 3s linear infinite;
}
@keyframes hue-rotate {
	from {
		filter: hue-rotate(0);
	}
	to {
		filter: hue-rotate(360deg);
	}
}

.b-d-f {
	border-style: dotted;
	border-width: 8px;
}
.o-d-f {
	outline-style: dotted;
	outline-width: 8px;
}
.o-d-k {
	outline-style: dotted;
	outline-width: 5px;
}
.b-d-k {
	border-style: dotted;
	border-width: 5px;
}
.o-d-t {
	outline-style: dotted;
	outline-width: 2px;
}
.b-s-t {
	border-style: solid;
	border-width: 2px;
}
.b-b-t {
	border-style: double;
	border-width: 4px;
}
.b-b-k {
	border-style: double;
	border-width: 8px;
}
.b-b-f {
	border-style: double;
	border-width: 12px;
}

.violence {
	background: linear-gradient(145deg, #000, #923cb5);
}
.sunset-b {
	border: 3px solid;
	border-image: linear-gradient(to right, #ff704d 0, #feb781 100%);
	border-image-slice: 1;
	border-width: 3px;
}
.sunset {
	background: linear-gradient(110deg, #ff704d, #feb781);
}
.love-b {
	border: 3px solid;
	border-image: linear-gradient(to right, #743ad5 0, #d53a9d 100%);
	border-image-slice: 1;
	border-width: 3px;
}
.summer {
	background: linear-gradient(150deg, #fbe025, #32effa);
}
.charcoal-b {
	border-color: #2e2e2e !important;
}

.blink-slow {
	animation: blinker 750ms steps(1, end) infinite;
}
@keyframes blinker {
	0% {
		opacity: 1;
	}
	50% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.bitshadow {
	letter-spacing: 0.1em;
	text-shadow:
		0.256rem 0.128rem 0 #e79c10,
		-0.128rem -0.256rem 0 #d53a33;
}
.bi:before {
	display: inline-block;
	font: normal normal normal 14px/1 arial;
	font-size: inherit;
	line-height: inherit;
}
.bi-wrong::before {
	content: "\274C";
}

.brutal-border-dark {
	border: 10px solid pink;
	border-image: repeating-linear-gradient(45deg, #d8d8d8, #d8d8d8 1%, #424242 1%, #424242 8%) 10;
}
.brutal-border-light {
	border: 10px solid pink;
	border-image: repeating-linear-gradient(45deg, #424242, #424242 1%, #d8d8d8 1%, #d8d8d8 8%) 10;
}
