/* =====================================================================
   Sovereign "lux" layer (preview theme sovereign-lux, 2026-10-08)
   ---------------------------------------------------------------------
   Loaded AFTER sovereign-eog.css. Re-skins the whole site in one place:
   remaps the theme tokens (palette + type), then restyles the shared
   chrome (nav, dropdowns, buttons, footer, tables, forms, page heroes)
   and adds the ambient layers (starfield canvas, grain, cursor glow).
   Interaction lives in js/lux.js. Everything is scoped to body.lux so
   the live theme is untouched.

   Direction: royal, quiet, expensive. Warm black, champagne gold,
   a single crimson accent. Thin display type with one italic serif
   word per headline. Few big moments instead of many small ones.
   ===================================================================== */

body.lux {
	/* ---- lux tokens ---- */
	--lx-bg:      #05040A;
	--lx-bg2:     #0A0811;
	--lx-ink:     #F6F1E9;
	--lx-ink2:    #D4CBC0;
	--lx-muted:   #958B9F;
	--lx-faint:   #5E5668;
	--lx-line:    rgba(244, 220, 166, .10);
	--lx-line2:   rgba(244, 220, 166, .20);
	--lx-gold:    #E3BF78;
	--lx-gold-l:  #F6DFAE;
	--lx-gold-d:  #A9803C;
	--lx-crim:    #E23B4E;
	--lx-crim-l:  #FF6F7E;
	--lx-crim-d:  #9E1F32;
	--lx-glass:   rgba(18, 14, 26, .52);
	--lx-glass-hi:rgba(255, 255, 255, .055);
	--lx-iri:     linear-gradient(100deg, #FFF7E8 0%, #F6DFAE 26%, #E3BF78 48%, #F08A8F 74%, #FFB3BE 100%);
	--lx-sans:    'Be Vietnam Pro', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--lx-serif:   'Cormorant Garamond', 'Times New Roman', serif;
	--lx-mono:    'JetBrains Mono', ui-monospace, 'SFMono-Regular', Consolas, monospace;
	--lx-ease:    cubic-bezier(.16, 1, .3, 1);

	/* ---- remap the base theme tokens, so every page inherits the look ---- */
	--font-body:    var(--lx-sans);
	--font-display: var(--lx-sans);
	--font-mono:    var(--lx-mono);
	--surface-ground:   var(--lx-bg);
	--surface-base:     var(--lx-bg2);
	--surface-raised:   #13101B;
	--surface-elevated: #1B1724;
	--surface-overlay:  #241F2F;
	--surface-border:        var(--lx-line);
	--surface-border-strong: var(--lx-line2);
	--crimson:       var(--lx-crim);
	--crimson-light: var(--lx-crim-l);
	--crimson-dark:  var(--lx-crim-d);
	--crimson-glow:  rgba(226, 59, 78, .38);
	--crimson-muted: rgba(226, 59, 78, .10);
	--gold:       var(--lx-gold);
	--gold-light: var(--lx-gold-l);
	--gold-dark:  var(--lx-gold-d);
	--gold-glow:  rgba(227, 191, 120, .32);
	--gold-muted: rgba(227, 191, 120, .10);
	--white:       var(--lx-ink);
	--steel-light: var(--lx-ink2);
	--steel:       var(--lx-muted);
	--steel-dark:  var(--lx-faint);
	--navbar-h: 76px;

	background: var(--lx-bg);
	color: var(--lx-ink2);
	font-family: var(--lx-sans);
	font-weight: 300;
	letter-spacing: .005em;
	-webkit-font-smoothing: antialiased;
}
body.lux ::selection { background: rgba(227, 191, 120, .32); color: #fff; }

/* ---------- ambient layers ---------- */
/* Fixed behind everything: a slow starfield (js/lux.js), a royal glow and film grain. */
body.lux #lux-stars {
	position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none;
}
body.lux .lux-aura {
	position: fixed; inset: 0; z-index: 0; pointer-events: none;
	background:
		radial-gradient(60% 45% at 50% -8%, rgba(226, 59, 78, .16), transparent 70%),
		radial-gradient(45% 40% at 92% 30%, rgba(227, 191, 120, .07), transparent 70%),
		radial-gradient(50% 45% at 4% 78%, rgba(120, 70, 200, .08), transparent 70%);
}
body.lux .lux-grain {
	position: fixed; inset: -50%; z-index: 999; pointer-events: none; opacity: .045;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	animation: luxGrain 1.2s steps(6) infinite;
}
@keyframes luxGrain {
	0% { transform: translate(0, 0); } 20% { transform: translate(-3%, 2%); } 40% { transform: translate(2%, -3%); }
	60% { transform: translate(-2%, -1%); } 80% { transform: translate(3%, 3%); } 100% { transform: translate(0, 0); }
}
body.lux .lux-cursor {
	position: fixed; left: 0; top: 0; width: 520px; height: 520px; margin: -260px 0 0 -260px;
	z-index: 1; pointer-events: none; border-radius: 50%; opacity: 0;
	background: radial-gradient(circle, rgba(246, 223, 174, .075), rgba(226, 59, 78, .035) 40%, transparent 68%);
	transition: opacity .6s ease;
	will-change: transform;
}
body.lux.lux-pointer .lux-cursor { opacity: 1; }
body.lux .sov-navbar, body.lux .sov-main, body.lux .sov-footer { position: relative; z-index: 2; }
body.lux .sov-navbar { position: sticky; z-index: 100; }

/* ---------- type ---------- */
body.lux h1, body.lux h2, body.lux h3, body.lux h4, body.lux h5 {
	font-family: var(--lx-sans); color: var(--lx-ink); letter-spacing: -.02em;
	text-transform: none; border-bottom: 0;
}
body.lux h1 { font-weight: 200; }
body.lux h2 { font-weight: 300; }
body.lux h3, body.lux h4 { font-weight: 400; }
body.lux a { color: var(--lx-gold-l); transition: color .3s var(--lx-ease); }
body.lux a:hover { color: #fff; }
body.lux strong, body.lux b { font-weight: 500; color: var(--lx-ink); }

/* One italic serif word per headline, painted with the champagne-to-rose sheen. */
body.lux .lux-serif, body.lux .sov-accent {
	font-family: var(--lx-serif); font-style: italic; font-weight: 500; letter-spacing: -.01em;
	background: var(--lx-iri); -webkit-background-clip: text; background-clip: text; color: transparent;
	padding-right: .06em;
}
body.lux .lux-eyebrow, body.lux .sov-eyebrow {
	display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px; border-radius: 999px;
	font-family: var(--lx-mono); font-size: 11px; font-weight: 400; letter-spacing: .22em; text-transform: uppercase;
	color: var(--lx-gold-l); background: rgba(227, 191, 120, .05); border: 1px solid var(--lx-line2);
	box-shadow: 0 0 30px -8px rgba(227, 191, 120, .25), inset 0 1px 0 rgba(255, 255, 255, .05);
}
body.lux .lux-eyebrow::before, body.lux .sov-eyebrow::before {
	content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--lx-gold);
	box-shadow: 0 0 10px var(--lx-gold);
}

/* ---------- navbar ---------- */
body.lux .sov-navbar {
	background: linear-gradient(180deg, rgba(5, 4, 10, .72), rgba(5, 4, 10, .36));
	backdrop-filter: blur(18px) saturate(1.2); -webkit-backdrop-filter: blur(18px) saturate(1.2);
	border-bottom: 1px solid transparent;
	transition: background .5s var(--lx-ease), border-color .5s var(--lx-ease);
}
body.lux.lux-scrolled .sov-navbar { background: rgba(7, 6, 12, .86); border-bottom-color: var(--lx-line); }
body.lux .sov-brand-mark {
	width: 36px; height: 36px; border-radius: 50%;
	font-family: var(--lx-serif); font-style: italic; font-weight: 600; font-size: 21px; color: #1A1206;
	background: radial-gradient(circle at 35% 30%, #FFF4DA, var(--lx-gold) 52%, var(--lx-gold-d));
	box-shadow: 0 0 0 1px rgba(246, 223, 174, .5), 0 0 26px -4px rgba(227, 191, 120, .65);
}
body.lux .sov-brand-text {
	font-family: var(--lx-sans); font-weight: 400; font-size: 14px; letter-spacing: .32em; text-transform: uppercase; color: var(--lx-ink);
}
body.lux .sov-brand-accent {
	font-family: var(--lx-serif); font-style: italic; font-weight: 500; font-size: 17px; letter-spacing: .02em; text-transform: none;
	color: var(--lx-gold); margin-left: .25em;
}
body.lux .sov-nav-link {
	font-family: var(--lx-sans); font-weight: 400; font-size: 13.5px; letter-spacing: .01em; color: var(--lx-ink2);
}
body.sov-eog.lux .sov-nav-link { color: var(--lx-ink2); }
body.lux .sov-nav-link:hover, body.lux .sov-nav-item:hover > .sov-nav-link { color: #fff; }
body.lux .sov-nav-link.is-active { color: #fff; }
body.lux .sov-nav-link.is-active::after {
	height: 1px; bottom: 20px; background: linear-gradient(90deg, transparent, var(--lx-gold), transparent);
	box-shadow: 0 0 10px var(--lx-gold);
}
body.lux .sov-dropdown {
	top: calc(var(--navbar-h) - 14px); padding: 8px; border-radius: 18px; min-width: 240px;
	background: rgba(14, 11, 20, .82); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
	border: 1px solid var(--lx-line2);
	box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .8), inset 0 1px 0 rgba(255, 255, 255, .05);
	transform: translateY(10px) scale(.98); transform-origin: top left;
	transition: opacity .35s var(--lx-ease), transform .45s var(--lx-ease), visibility .35s;
}
body.lux .sov-nav-item:hover > .sov-dropdown, body.lux .sov-nav-item:focus-within > .sov-dropdown { transform: none; }
body.lux .sov-dropdown a { border-radius: 12px; font-weight: 400; color: var(--lx-ink2); padding: 10px 14px; }
body.lux .sov-dropdown a:hover { background: rgba(227, 191, 120, .08); color: #fff; padding-left: 18px; transition: all .3s var(--lx-ease); }

/* ---------- buttons: pills with a light sweep, glow and magnetic pull (js) ---------- */
body.lux .sov-btn, body.lux .lux-btn {
	position: relative; overflow: hidden; isolation: isolate;
	height: 46px; padding-inline: 22px; border-radius: 999px;
	font-family: var(--lx-sans); font-size: 14px; font-weight: 500; letter-spacing: .02em; text-transform: none;
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	transition: transform .55s var(--lx-ease), box-shadow .45s var(--lx-ease), border-color .35s, background-color .35s, color .35s;
	will-change: transform;
}
body.lux .sov-btn::after, body.lux .lux-btn::after {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .38) 48%, transparent 66%);
	background-size: 250% 100%; background-position: 130% 0;
	transition: background-position 1s var(--lx-ease);
}
body.lux .sov-btn:hover::after, body.lux .lux-btn:hover::after { background-position: -30% 0; }
body.lux .sov-btn:active, body.lux .lux-btn:active { transform: scale(.97); }
body.lux .sov-btn-lg, body.lux .lux-btn-lg { height: 56px; padding-inline: 32px; font-size: 15px; }
body.lux .sov-btn-sm { height: 36px; padding-inline: 16px; font-size: 12.5px; }

body.lux .sov-btn-primary, body.lux .lux-btn-primary {
	color: #fff; border: 1px solid rgba(255, 140, 150, .5);
	background: radial-gradient(120% 140% at 30% 0%, #FF7D8B 0%, var(--lx-crim) 45%, var(--lx-crim-d) 100%);
	box-shadow: 0 10px 40px -12px rgba(226, 59, 78, .9), inset 0 1px 0 rgba(255, 255, 255, .28);
}
body.lux .sov-btn-primary:hover, body.lux .lux-btn-primary:hover {
	color: #fff; background: radial-gradient(120% 140% at 30% 0%, #FF95A1 0%, #EE4A5C 45%, #B0263A 100%);
	box-shadow: 0 18px 60px -12px rgba(226, 59, 78, 1), 0 0 0 4px rgba(226, 59, 78, .12), inset 0 1px 0 rgba(255, 255, 255, .3);
}
body.lux .sov-btn-goldfill, body.lux .lux-btn-gold {
	color: #1A1206; border: 1px solid rgba(255, 240, 205, .6);
	background: radial-gradient(120% 140% at 30% 0%, #FFF3D4 0%, var(--lx-gold) 50%, var(--lx-gold-d) 100%);
	box-shadow: 0 10px 40px -14px rgba(227, 191, 120, .9), inset 0 1px 0 rgba(255, 255, 255, .55);
}
body.lux .sov-btn-goldfill:hover, body.lux .lux-btn-gold:hover {
	color: #1A1206; box-shadow: 0 18px 60px -12px rgba(227, 191, 120, 1), 0 0 0 4px rgba(227, 191, 120, .12), inset 0 1px 0 rgba(255, 255, 255, .6);
}
body.lux .sov-btn-ghost, body.lux .lux-btn-ghost, body.lux .sov-btn-gold {
	color: var(--lx-ink); background: rgba(255, 255, 255, .03); border: 1px solid var(--lx-line2);
	backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
body.lux .sov-btn-ghost:hover, body.lux .lux-btn-ghost:hover, body.lux .sov-btn-gold:hover {
	color: #fff; background: rgba(227, 191, 120, .07); border-color: rgba(246, 223, 174, .55);
	box-shadow: 0 12px 40px -18px rgba(227, 191, 120, .8);
}
body.lux .sov-btn-discord, body.lux .lux-btn-discord {
	color: #fff; border: 1px solid rgba(160, 170, 255, .45);
	background: radial-gradient(120% 140% at 30% 0%, #8F99FF 0%, #5865F2 50%, #3B45C4 100%);
	box-shadow: 0 10px 36px -14px rgba(88, 101, 242, .9), inset 0 1px 0 rgba(255, 255, 255, .25);
}
body.lux .sov-btn-discord:hover, body.lux .lux-btn-discord:hover { color: #fff; box-shadow: 0 18px 54px -12px rgba(88, 101, 242, 1); }
body.lux .lux-arrow { display: inline-block; transition: transform .5s var(--lx-ease); }
body.lux .lux-btn:hover .lux-arrow, body.lux .sov-btn:hover .lux-arrow { transform: translateX(4px); }
body.lux .sov-nav-actions .sov-btn { height: 40px; padding-inline: 18px; font-size: 13px; }

/* ---------- inner pages: content chrome ---------- */
body.lux .sov-page { padding-block: 56px 96px; }
body.lux .sov-page-hero h1, body.lux .sov-heading {
	font-weight: 200; font-size: clamp(38px, 5.2vw, 68px); line-height: 1.02; letter-spacing: -.035em; color: var(--lx-ink);
}
body.lux .sov-page-intro { color: var(--lx-ink2); font-weight: 300; }
body.sov-eog.lux .sov-content h2 { font-weight: 300; letter-spacing: -.02em; }
body.sov-eog.lux .sov-content h3 { font-weight: 400; }

/* tables (item db, rankings, server pages) */
body.lux .horizontal-table, body.lux .vertical-table, body.lux .sov-content table {
	border-collapse: separate; border-spacing: 0;
}
body.sov-eog.lux .horizontal-table th, body.sov-eog.lux .vertical-table th {
	background: rgba(227, 191, 120, .05); color: var(--lx-gold-l);
	font-family: var(--lx-mono); font-weight: 400; font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
	border-color: var(--lx-line);
}
body.sov-eog.lux .horizontal-table td, body.sov-eog.lux .vertical-table td {
	background: rgba(14, 11, 20, .55); border-color: var(--lx-line); color: var(--lx-ink2);
	transition: background-color .3s var(--lx-ease);
}
body.sov-eog.lux .horizontal-table tr:hover td { background: rgba(227, 191, 120, .045); }

/* forms */
body.sov-eog.lux input[type=text], body.sov-eog.lux input[type=password], body.sov-eog.lux input[type=email],
body.sov-eog.lux input[type=number], body.sov-eog.lux input[type=search], body.sov-eog.lux input[type=url],
body.sov-eog.lux input[type=tel], body.sov-eog.lux select, body.sov-eog.lux textarea {
	background: rgba(255, 255, 255, .03) !important; border: 1px solid var(--lx-line2) !important;
	border-radius: 12px !important; color: var(--lx-ink) !important; font-family: var(--lx-sans) !important;
	padding: 10px 14px !important; font-weight: 300;
	transition: border-color .3s var(--lx-ease), box-shadow .3s var(--lx-ease), background-color .3s;
}
body.sov-eog.lux input:focus, body.sov-eog.lux select:focus, body.sov-eog.lux textarea:focus {
	border-color: rgba(246, 223, 174, .7) !important; background: rgba(255, 255, 255, .05) !important;
	box-shadow: 0 0 0 4px rgba(227, 191, 120, .10), 0 10px 30px -12px rgba(227, 191, 120, .5) !important;
}
body.sov-eog.lux input[type=submit], body.sov-eog.lux button.submit, body.sov-eog.lux input[type=button], body.sov-eog.lux .button {
	border-radius: 999px; padding: 10px 22px; font-family: var(--lx-sans); font-weight: 500; letter-spacing: .02em;
	background: radial-gradient(120% 140% at 30% 0%, #FF7D8B 0%, var(--lx-crim) 45%, var(--lx-crim-d) 100%);
	border: 1px solid rgba(255, 140, 150, .5); color: #fff; box-shadow: 0 10px 30px -12px rgba(226, 59, 78, .9);
	cursor: pointer; transition: box-shadow .4s var(--lx-ease), transform .4s var(--lx-ease);
}
body.sov-eog.lux input[type=submit]:hover, body.sov-eog.lux button.submit:hover { transform: translateY(-2px); box-shadow: 0 16px 44px -12px rgba(226, 59, 78, 1); }

body.sov-eog.lux p.message {
	border-radius: 14px; background: rgba(227, 191, 120, .06); border: 1px solid var(--lx-line2); color: var(--lx-ink);
}

/* ---------- footer ---------- */
body.lux .sov-footer {
	background: linear-gradient(180deg, transparent, rgba(10, 8, 17, .9) 30%);
	border-top: 1px solid var(--lx-line);
}
body.lux .sov-footer-tag { color: var(--lx-muted); font-weight: 300; }
body.lux .sov-footer-col h5 { font-family: var(--lx-mono); color: var(--lx-gold); letter-spacing: .2em; font-weight: 400; }
body.lux .sov-footer-col a { color: var(--lx-ink2); font-weight: 300; transition: color .3s var(--lx-ease), transform .3s var(--lx-ease); }
body.lux .sov-footer-col a:hover { color: #fff; transform: translateX(3px); }

/* ---------- shared lux components ---------- */
/* Glass card with a light that follows the cursor (js sets --mx/--my). */
body.lux .lux-card {
	position: relative; overflow: hidden; border-radius: 22px;
	background: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .012));
	border: 1px solid var(--lx-line);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05);
	transition: border-color .5s var(--lx-ease), transform .6s var(--lx-ease), box-shadow .6s var(--lx-ease);
}
body.lux .lux-card::before {
	content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .5s var(--lx-ease);
	background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(246, 223, 174, .11), transparent 60%);
}
body.lux .lux-card::after {
	content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; opacity: 0;
	background: radial-gradient(300px circle at var(--mx, 50%) var(--my, 50%), rgba(246, 223, 174, .7), transparent 60%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
	mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
	transition: opacity .5s var(--lx-ease);
}
body.lux .lux-card:hover { transform: translateY(-4px); box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .9), inset 0 1px 0 rgba(255, 255, 255, .06); }
body.lux .lux-card:hover::before, body.lux .lux-card:hover::after { opacity: 1; }

/* Scroll reveal: js adds .lux-in. Without js everything simply shows. */
html.lux-js body.lux [data-reveal] {
	opacity: 0; transform: translateY(28px); filter: blur(6px);
	transition: opacity 1.1s var(--lx-ease), transform 1.1s var(--lx-ease), filter 1.1s var(--lx-ease);
	transition-delay: var(--rd, 0s);
}
html.lux-js body.lux [data-reveal].lux-in { opacity: 1; transform: none; filter: none; }

@media (max-width: 900px) {
	body.lux { --navbar-h: 64px; }
	body.lux .lux-cursor { display: none; }
	body.lux .sov-nav-links { background: rgba(8, 6, 13, .97); }
	body.lux .sov-dropdown { background: transparent; border: 0; box-shadow: none; backdrop-filter: none; }
}
@media (prefers-reduced-motion: reduce) {
	body.lux .lux-grain { animation: none; }
	body.lux *, body.lux *::before, body.lux *::after { transition-duration: .01s !important; animation-duration: .01s !important; }
	html.lux-js body.lux [data-reveal] { opacity: 1; transform: none; filter: none; }
}

/* =====================================================================
   Updates page (.sovu) in the lux skin. The view keeps its own layout;
   this swaps its tokens and type for the lux ones and calms it down:
   thinner headings, hairline stats, glass cards with the cursor light.
   ===================================================================== */
body.sov-eog.lux .sovu {
	--u-card: #0E0B15; --u-card-hi: #14101C;
	--u-line: var(--lx-line); --u-line-mid: var(--lx-line2); --u-gold-line: rgba(246, 223, 174, .32);
	--u-text: var(--lx-ink); --u-text2: var(--lx-ink2); --u-muted: var(--lx-muted);
	--u-crimson: var(--lx-crim); --u-crimson-l: var(--lx-crim-l); --u-gold: var(--lx-gold); --u-gold-l: var(--lx-gold-l);
	--u-fd: var(--lx-sans); --u-fb: var(--lx-sans); --u-fm: var(--lx-mono);
	font-weight: 300;
}
body.sov-eog.lux .sovu h1, body.sov-eog.lux .sovu h2, body.sov-eog.lux .sovu h3 { font-weight: 300; }
body.sov-eog.lux .sovu .sovu-hero { padding-top: 40px; margin-bottom: 56px; }
body.sov-eog.lux .sovu .sovu-hero::before { display: none; }
body.sov-eog.lux .sovu .sovu-title {
	margin: 26px 0 18px; font-weight: 200; font-size: clamp(46px, 7.4vw, 108px); line-height: .98; letter-spacing: -.045em;
}
body.sov-eog.lux .sovu .sovu-title .lux-serif { font-size: 1.06em; }
body.sov-eog.lux .sovu .sovu-intro { font-size: 17px; line-height: 1.75; color: var(--lx-muted); max-width: 58ch; }

/* stats: hairline row, no boxes */
body.sov-eog.lux .sovu .sovu-stats {
	gap: 0; max-width: 900px; margin-top: 46px; border: 1px solid var(--lx-line); border-radius: 22px;
	background: rgba(12, 9, 18, .42); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
body.sov-eog.lux .sovu .sovu-stat { background: none; border: 0; border-left: 1px solid var(--lx-line); border-radius: 0; padding: 22px 12px; }
body.sov-eog.lux .sovu .sovu-stat:first-child { border-left: 0; }
body.sov-eog.lux .sovu .sovu-stat:hover { transform: none; }
body.sov-eog.lux .sovu .sovu-stat-v { font-weight: 200; font-size: clamp(32px, 3.4vw, 46px); color: var(--lx-ink); letter-spacing: -.03em; }
body.sov-eog.lux .sovu .sovu-stat-l { letter-spacing: .22em; font-size: 10px; }

/* spotlight */
body.sov-eog.lux .sovu .sovu-spot { border-radius: 28px; border-color: var(--lx-line2); background: rgba(12, 9, 18, .7);
	box-shadow: 0 40px 120px -50px rgba(0, 0, 0, .95), inset 0 1px 0 rgba(255, 255, 255, .05); }
body.sov-eog.lux .sovu .sovu-spot-title { font-weight: 300; font-size: clamp(28px, 3vw, 40px); letter-spacing: -.03em; }
body.sov-eog.lux .sovu .sovu-spot-tag { background: rgba(226, 59, 78, .14); border: 1px solid rgba(255, 140, 150, .4); color: var(--lx-crim-l); font-weight: 400; }
body.sov-eog.lux .sovu .sovu-spot-tab { border-radius: 999px; font-family: var(--lx-sans); font-weight: 400; background: rgba(255, 255, 255, .03); backdrop-filter: blur(10px); }
body.sov-eog.lux .sovu .sovu-spot-tab[aria-selected="true"] { background: rgba(227, 191, 120, .1); border-color: rgba(246, 223, 174, .55); color: #fff; }
body.sov-eog.lux .sovu .sovu-spot-how, body.sov-eog.lux .sovu .sovu-how { border-radius: 14px; border-style: solid; border-color: var(--lx-line2); background: rgba(227, 191, 120, .05); }
body.sov-eog.lux .sovu .sovu-spot-more { font-family: var(--lx-sans); font-weight: 500; letter-spacing: .02em; text-transform: none; font-size: 14px; }

/* toolbar */
body.sov-eog.lux .sovu .sovu-bar { background: rgba(7, 6, 12, .78); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); border-bottom-color: var(--lx-line); }
body.sov-eog.lux .sovu .sovu-chip, body.sov-eog.lux .sovu .sovu-tbtn {
	border-radius: 999px; background: rgba(255, 255, 255, .025); font-family: var(--lx-sans); font-weight: 400;
	transition: border-color .35s var(--lx-ease), background-color .35s var(--lx-ease), transform .4s var(--lx-ease);
}
body.sov-eog.lux .sovu .sovu-chip:hover, body.sov-eog.lux .sovu .sovu-tbtn:hover { transform: translateY(-1px); }
body.sov-eog.lux .sovu .sovu-mchip { border-radius: 12px; background: rgba(255, 255, 255, .02); }

/* timeline */
body.sov-eog.lux .sovu .sovu-tl::before { width: 1px; background: linear-gradient(180deg, var(--lx-gold), rgba(226, 59, 78, .5) 40%, rgba(244, 220, 166, .08)); }
body.sov-eog.lux .sovu .sovu-mhead-t { font-weight: 200; font-size: 40px; letter-spacing: -.035em; }
body.sov-eog.lux .sovu .sovu-mhead::before { border-radius: 50%; transform: none; border-width: 1px; box-shadow: 0 0 14px rgba(227, 191, 120, .5); }
body.sov-eog.lux .sovu .sovu-card {
	border-radius: 20px;
	background:
		radial-gradient(460px circle at var(--mx, -500px) var(--my, -500px), rgba(246, 223, 174, .075), transparent 60%),
		linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .012));
	transition: border-color .5s var(--lx-ease), transform .6s var(--lx-ease), box-shadow .6s var(--lx-ease);
}
body.sov-eog.lux .sovu .sovu-card:hover { transform: translateX(4px); border-color: var(--lx-line2); box-shadow: 0 24px 60px -34px rgba(0, 0, 0, .9); }
body.sov-eog.lux .sovu .sovu-card::before { width: 2px; opacity: .7; }
body.sov-eog.lux .sovu .sovu-ititle { font-weight: 400; font-size: 20px; letter-spacing: -.015em; }
body.sov-eog.lux .sovu .is-major .sovu-ititle { font-weight: 300; font-size: 27px; letter-spacing: -.025em; }
body.sov-eog.lux .sovu .sovu-ihype { font-size: 15px; line-height: 1.7; color: var(--lx-muted); }
body.sov-eog.lux .sovu .sovu-item.is-major .sovu-card { background:
	radial-gradient(460px circle at var(--mx, -500px) var(--my, -500px), rgba(246, 223, 174, .09), transparent 60%),
	linear-gradient(135deg, color-mix(in srgb, var(--c) 9%, transparent), rgba(255, 255, 255, .015) 55%); }
body.sov-eog.lux .sovu .sovu-pill { font-weight: 400; letter-spacing: .14em; }
body.sov-eog.lux .sovu .sovu-ic { border-radius: 14px; }
body.sov-eog.lux .sovu .sovu-cta { border-radius: 28px; padding: 70px 26px; background: radial-gradient(520px 260px at 50% 30%, rgba(226, 59, 78, .14), transparent 70%), rgba(12, 9, 18, .6); border-color: var(--lx-line2); }
body.sov-eog.lux .sovu .sovu-cta-t { font-weight: 200; font-size: clamp(34px, 4.6vw, 60px); letter-spacing: -.035em; }
body.sov-eog.lux .sovu .lux-btn-primary, body.sov-eog.lux .sovu .lux-btn-discord { color: #fff; }
body.sov-eog.lux .sovu .lux-btn-gold { color: #1A1206; }
@media (max-width: 700px) {
	body.sov-eog.lux .sovu .sovu-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.sov-eog.lux .sovu .sovu-stat:nth-child(3) { border-left: 0; }
	body.sov-eog.lux .sovu .sovu-stat:nth-child(n+3) { border-top: 1px solid var(--lx-line); }
	body.sov-eog.lux .sovu .is-major .sovu-ititle { font-size: 21px; }
	body.sov-eog.lux .sovu .sovu-mhead-t { font-size: 30px; }
}

/* Brand mark: a fine-line gold crown with a crimson gem (replaces the "S" coin, owner 10-08). */
body.lux .sov-brand-mark.lux-crown {
	width: 40px; height: 32px; padding: 0; border-radius: 0; background: none; box-shadow: none;
	display: inline-flex; align-items: center; justify-content: center;
	filter: drop-shadow(0 0 8px rgba(227, 191, 120, .45));
	transition: transform .6s var(--lx-ease), filter .6s var(--lx-ease);
}
body.lux .sov-brand-mark.lux-crown svg { width: 100%; height: 100%; overflow: visible; }
body.lux .lux-crown .c-gem { filter: drop-shadow(0 0 4px rgba(226, 59, 78, .9)); transform-origin: 20px 20px; animation: luxGem 4s ease-in-out infinite; }
@keyframes luxGem { 0%, 100% { opacity: .85; } 50% { opacity: 1; } }
body.lux .sov-brand:hover .lux-crown { transform: translateY(-2px) rotate(-4deg); filter: drop-shadow(0 0 14px rgba(246, 223, 174, .75)); }
body.lux .sov-brand { gap: 12px; }

/* =====================================================================
   One button family (owner 10-08: "button colors dont match").
   Every button now comes from the house palette:
     royal wine  = the one main action (Register / Create account / submit)
     champagne   = gold actions (Donate / Download)
     glass       = everything else, Discord included (no off-brand blurple;
                   the Discord glyph is drawn in gold instead)
   Appended last so it overrides the earlier button rules at equal specificity.
   ===================================================================== */
body.lux .sov-btn-primary, body.lux .lux-btn-primary,
body.sov-eog.lux input[type=submit], body.sov-eog.lux button.submit, body.sov-eog.lux input[type=button], body.sov-eog.lux .button {
	color: #FFF4E6; border: 1px solid rgba(246, 223, 174, .42);
	background: radial-gradient(120% 140% at 30% 0%, #B9384F 0%, #8A1B30 48%, #5A0F1E 100%);
	box-shadow: 0 10px 34px -14px rgba(150, 28, 52, .95), inset 0 1px 0 rgba(255, 214, 190, .22);
}
body.lux .sov-btn-primary:hover, body.lux .lux-btn-primary:hover,
body.sov-eog.lux input[type=submit]:hover, body.sov-eog.lux button.submit:hover {
	color: #FFF8EE; border-color: rgba(246, 223, 174, .78);
	background: radial-gradient(120% 140% at 30% 0%, #CC4760 0%, #9C2339 48%, #681325 100%);
	box-shadow: 0 16px 50px -14px rgba(150, 28, 52, 1), 0 0 0 4px rgba(227, 191, 120, .10), inset 0 1px 0 rgba(255, 214, 190, .28);
}
body.lux .sov-btn-goldfill, body.lux .lux-btn-gold {
	color: #24190A; border: 1px solid rgba(255, 240, 205, .62);
	background: radial-gradient(120% 140% at 30% 0%, #FFF2D2 0%, #E6C27C 48%, #B08643 100%);
	box-shadow: 0 10px 34px -16px rgba(227, 191, 120, .9), inset 0 1px 0 rgba(255, 255, 255, .55);
}
body.lux .sov-btn-goldfill:hover, body.lux .lux-btn-gold:hover {
	color: #24190A; box-shadow: 0 16px 50px -14px rgba(227, 191, 120, 1), 0 0 0 4px rgba(227, 191, 120, .12), inset 0 1px 0 rgba(255, 255, 255, .6);
}
body.lux .sov-btn-ghost, body.lux .lux-btn-ghost, body.lux .sov-btn-gold,
body.lux .sov-btn-discord, body.lux .lux-btn-discord {
	color: var(--lx-ink); border: 1px solid rgba(246, 223, 174, .28);
	background: linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .015));
	backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05);
}
body.lux .sov-btn-ghost:hover, body.lux .lux-btn-ghost:hover, body.lux .sov-btn-gold:hover,
body.lux .sov-btn-discord:hover, body.lux .lux-btn-discord:hover {
	color: #fff; border-color: rgba(246, 223, 174, .62); background: rgba(227, 191, 120, .08);
	box-shadow: 0 12px 36px -18px rgba(227, 191, 120, .85), inset 0 1px 0 rgba(255, 255, 255, .06);
}
body.lux .sov-btn-discord::before { background-color: var(--lx-gold-l); }
body.lux .lux-btn-ghost svg, body.lux .lux-btn-discord svg { fill: var(--lx-gold-l); }
/* the home and updates pages force white text on these classes; keep it on the house ivory */
body.sov-eog.lux .lxh .lux-btn-primary, body.sov-eog.lux .sovu .lux-btn-primary { color: #FFF4E6; }
body.sov-eog.lux .lxh .lux-btn-discord, body.sov-eog.lux .sovu .lux-btn-discord { color: var(--lx-ink); }
body.sov-eog.lux .lxh .lux-btn-gold, body.sov-eog.lux .sovu .lux-btn-gold { color: #24190A; }

/* Tab pills above inner pages (Login / Register, List Items, ...): glass, current = royal wine. */
body.sov-eog.lux .sub-menu-item, body.sov-eog.lux .page-menu-item {
	font-family: var(--lx-sans); font-size: 12.5px; padding: 6px 14px;
	border-color: rgba(246, 223, 174, .24); background: rgba(255, 255, 255, .03); color: var(--lx-ink2);
}
body.sov-eog.lux .sub-menu-item:hover, body.sov-eog.lux .page-menu-item:hover {
	background: rgba(227, 191, 120, .08); border-color: rgba(246, 223, 174, .6); color: #fff;
}
body.sov-eog.lux .current-sub-menu, body.sov-eog.lux .current-sub-menu:hover {
	color: #FFF4E6; border-color: rgba(246, 223, 174, .5);
	background: radial-gradient(120% 140% at 30% 0%, #B9384F 0%, #8A1B30 48%, #5A0F1E 100%);
	box-shadow: 0 8px 24px -12px rgba(150, 28, 52, .9);
}

/* =====================================================================
   Live rates popover (owner 10-08: it opened BEHIND the hero buttons).
   The hero's buttons/HUD are later siblings with their own stacking
   contexts (entrance animation, backdrop blur), so the badge gets its
   own top layer. Popover is centred under the pill, wide enough for
   the party table, with a hover bridge across the gap.
   ===================================================================== */
body.lux .lxh-rates { position: relative; z-index: 40; }
body.lux .lxh-rates .sov-rates-pop {
	top: calc(100% + 12px); left: 50%; right: auto; width: 360px; max-width: 92vw; min-width: 0;
	padding: 12px; text-align: left; transform: translate(-50%, 8px) scale(.98); transform-origin: top center;
}
body.lux .lxh-rates .sov-rates:hover > .sov-rates-pop,
body.lux .lxh-rates .sov-rates:focus-within > .sov-rates-pop,
body.lux .lxh-rates .sov-rates.is-open > .sov-rates-pop { transform: translate(-50%, 0); }
body.lux .lxh-rates .sov-rates-pop::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }

body.lux .sov-rates-pill {
	font-family: var(--lx-sans); font-weight: 400; border-radius: 999px;
	border: 1px solid rgba(246, 223, 174, .3); background: rgba(12, 9, 18, .55); color: var(--lx-ink2);
	backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
	transition: border-color .35s var(--lx-ease), background-color .35s var(--lx-ease);
}
body.lux .sov-rates-pill:hover, body.lux .sov-rates.is-open .sov-rates-pill { border-color: rgba(246, 223, 174, .62); background: rgba(227, 191, 120, .08); }
body.lux .sov-rates-figs b { font-weight: 500; color: var(--lx-ink); }
body.lux .sov-rates-spark { color: var(--lx-gold-l); }
body.lux .sov-rates-head { padding: 6px 8px 10px; border-bottom: 1px solid var(--lx-line); }
body.lux .sov-rates-title { font-family: var(--lx-mono); font-weight: 400; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--lx-gold-l); }
body.lux .sov-rates-list li { padding: 7px 8px; font-size: 14px; font-weight: 300; color: var(--lx-ink2); }
body.lux .sov-rates-list li b { font-family: var(--lx-mono); font-weight: 400; color: var(--lx-ink); }
body.lux .sov-rates-party { padding: 12px 8px 4px; border-top: 1px solid var(--lx-line); }
body.lux .sov-rates-party-h { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 8px;
	font-family: var(--lx-sans); font-weight: 500; font-size: 13px; color: var(--lx-gold-l); }
body.lux .sov-rates-party-b { font-weight: 300; font-size: 12px; color: var(--lx-muted); white-space: nowrap; }
body.lux .sov-rates-table th { font-family: var(--lx-mono); font-weight: 400; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--lx-muted); padding: 4px 8px; }
body.lux .sov-rates-table td { padding: 5px 8px; font-family: var(--lx-mono); font-size: 12.5px; color: var(--lx-ink2); }
body.lux .sov-rates-table td:first-child { font-family: var(--lx-sans); white-space: nowrap; color: var(--lx-ink); }
body.lux .sov-rates-table tbody tr:nth-child(even) { background: rgba(227, 191, 120, .035); }
body.lux .sov-rates-note { font-size: 11.5px; line-height: 1.6; color: var(--lx-muted); }
body.lux .lxh-hero-in { z-index: 3; }
body.lux .lxh-rates .sov-rates-pop { background: rgba(11, 9, 16, .97); border-color: rgba(246, 223, 174, .28); box-shadow: 0 40px 90px -20px rgba(0, 0, 0, .95), inset 0 1px 0 rgba(255, 255, 255, .05); }
body.lux .lxh-rates .sov-rates-pop { background: #0B0910; backdrop-filter: none; -webkit-backdrop-filter: none; }
