:root {
	--bg: #121014;
	--panel: #222024;
	--text: #f0edf4;
	--muted: #a2a0a4;
	--muted-2: #828084;
	--border: rgba(255,255,255,.12);
	--border-strong: rgba(255,255,255,.20);
	--violet: #b997ff;
	--blue: #77b7ff;
	--green: #79e6a4;
	--yellow: #f2d36b;
	--red: #ff7d8d;
	--shadow: 0 18px 60px rgba(0,0,0,.45);
	--header-h: 76px;
}

* {
	box-sizing: border-box;
}

html {
	background: var(--bg);
	scroll-behavior: smooth;
}

body {
	margin: 0;
	min-height: 100%;
	color: var(--text);
	background:
		radial-gradient(circle at top left, rgba(185,151,255,.16), transparent 34rem),
		radial-gradient(circle at 80% 10%, rgba(119,183,255,.11), transparent 32rem),
		radial-gradient(circle at 65% 82%, rgba(121,230,164,.08), transparent 30rem),
		linear-gradient(180deg, #121014 0%, #151318 42%, #121014 100%);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
	overflow-x: hidden;
}

body.menu-open {
	overflow: hidden;
}

a,
button {
	-webkit-tap-highlight-color: transparent;
}

a:focus-visible,
button:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px rgba(185,151,255,.42);
}

.skip-link {
	position: absolute;
	top: -10rem;
	left: 1rem;
	z-index: 999;
	padding: .75rem 1rem;
	border-radius: .75rem;
	background: var(--violet);
	color: #16121f;
	font-weight: 900;
	transition: top .16s ease;
}

.skip-link:focus {
	top: 1rem;
}

.gradient-text {
	background: linear-gradient(135deg, var(--text), var(--violet) 38%, var(--blue) 72%, var(--green));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	padding-right: 1dvw;
}

.glass {
	border: 1px solid var(--border);
	background:
		linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.026)),
		rgba(34,32,36,.86);
	box-shadow: var(--shadow);
}

.hero-glass {
	position: relative;
	overflow: hidden;
}

.hero-glass::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		radial-gradient(circle at 15% 12%, rgba(185,151,255,.21), transparent 18rem),
		radial-gradient(circle at 85% 25%, rgba(119,183,255,.12), transparent 16rem),
		linear-gradient(90deg, rgba(255,255,255,.05), transparent 42%);
}

.hero-glass > * {
	position: relative;
	z-index: 1;
}

.eyebrow {
	align-items: center;
	background: rgba(121,230,164,.08);
	border-radius: 999px;
	border: 1px solid rgba(121,230,164,.30);
	color: var(--green);
	display: inline-flex;
	font-size: .78rem;
	font-weight: 900;
	gap: .45rem;
	letter-spacing: .075em;
	margin-block-start: 1rem;
	margin-block-end: 1rem;
	padding: .34rem .7rem;
	text-transform: uppercase;
	width: fit-content;
}

.pulse {
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: var(--green);
	animation: pulse 1.8s infinite;
}

@keyframes pulse {
	0% { box-shadow: 0 0 0 0 rgba(121,230,164,.55); }
	70% { box-shadow: 0 0 0 10px rgba(121,230,164,0); }
	100% { box-shadow: 0 0 0 0 rgba(121,230,164,0); }
}

.mobile-drawer {
	transform: translateX(105%);
	transition: transform .22s cubic-bezier(.2,.8,.2,1);
}

.mobile-drawer.is-open {
	transform: translateX(0);
}

.nav-backdrop {
	opacity: 0;
	pointer-events: none;
	transition: opacity .2s ease;
}

.nav-backdrop.is-open {
	opacity: 1;
	pointer-events: auto;
}

.hamburger {
	position: relative;
	width: 20px;
	height: 14px;
}

.hamburger span {
	position: absolute;
	left: 0;
	width: 20px;
	height: 2px;
	border-radius: 99px;
	background: var(--text);
	transition: transform .18s ease, opacity .18s ease, top .18s ease;
}

.hamburger span:nth-child(1) { top: 0; }
.hamburger span:nth-child(2) { top: 6px; }
.hamburger span:nth-child(3) { top: 12px; }

.nav-toggle[aria-expanded="true"] .hamburger span:nth-child(1) {
	top: 6px;
	transform: rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .hamburger span:nth-child(2) {
	opacity: 0;
}

.nav-toggle[aria-expanded="true"] .hamburger span:nth-child(3) {
	top: 6px;
	transform: rotate(-45deg);
}

.copy-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: .75rem;
}

.copy-target {
	min-width: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.accent-card {
	position: relative;
	overflow: hidden;
}

.accent-card::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 4px;
	background: var(--violet);
}

.accent-violet::before { background: var(--violet); }
.accent-blue::before { background: var(--blue); }
.accent-green::before { background: var(--green); }
.accent-yellow::before { background: var(--yellow); }
.accent-red::before { background: var(--red); }

.bullet-list {
	display: grid;
	gap: .65rem;
	margin: .9rem 0 0;
	padding: 0;
	list-style: none;
}

.bullet-list li {
	display: grid;
	grid-template-columns: 1.1rem 1fr;
	gap: .55rem;
	color: var(--muted);
}

.bullet-list li::before {
	content: "◆";
	color: var(--violet);
	font-size: .78rem;
	transform: translateY(.16rem);
}

.legal-doc h1 {
	margin: 0;
	font-size: clamp(2.1rem, 10vw, 4rem);
	line-height: .95;
	letter-spacing: -.06em;
}

.legal-doc h2 {
	margin: 2rem 0 .7rem;
	padding-top: 1.1rem;
	border-top: 1px solid var(--border);
	color: var(--text);
	font-size: clamp(1.3rem, 4vw, 1.7rem);
	font-weight: 900;
	letter-spacing: -.035em;
}

.legal-doc h3 {
	margin: 1.25rem 0 .45rem;
	color: var(--text);
	font-size: 1.08rem;
	font-weight: 900;
}

.legal-doc p,
.legal-doc li {
	color: var(--muted);
}

.legal-doc p {
	margin: .65rem 0;
}

.legal-doc ul,
.legal-doc ol {
	padding-left: 1.35rem;
}

.legal-doc li {
	margin: .42rem 0;
}

.legal-doc a:not(.btn) {
	color: var(--blue);
	font-weight: 800;
	text-decoration: underline;
	text-decoration-color: rgba(119,183,255,.45);
	text-underline-offset: .18em;
}

.rules-list {
	counter-reset: rules;
	padding-left: 0 !important;
	list-style: none;
}

.rules-list > li {
	counter-increment: rules;
	position: relative;
	margin: 1rem 0;
	padding: 1rem 1rem 1rem 3.25rem;
	border: 1px solid var(--border);
	border-radius: 1.1rem;
	background: rgba(255,255,255,.032);
}

.rules-list > li::before {
	content: counter(rules);
	position: absolute;
	left: 1rem;
	top: 1rem;
	width: 1.6rem;
	height: 1.6rem;
	display: grid;
	place-items: center;
	border-radius: 999px;
	color: #151218;
	background: linear-gradient(135deg, var(--violet), var(--blue));
	font-weight: 1000;
	font-size: .85rem;
}

.rule-title {
	display: block;
	margin-bottom: .3rem;
	color: var(--text);
	font-weight: 1000;
	letter-spacing: .035em;
	text-transform: uppercase;
}

.video-shell {
	overflow: hidden;
	margin: 1rem 0;
	aspect-ratio: 16 / 9;
	border: 1px solid var(--border);
	border-radius: 1.5rem;
	background: #050407;
	box-shadow: var(--shadow);
}

.video-shell video,
.video-shell iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	background: #050407;
}

.email-munged {
	color: var(--blue);
	font-weight: 800;
	text-decoration: underline;
	text-decoration-color: rgba(119,183,255,.45);
	text-underline-offset: .18em;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: .001ms !important;
	}
}
