:root {

	/* backgrounds */
	--primary: rgb(30,33,40);
	--secondary: rgb(25,28,33);
	--third: #ddd;
	--border: rgb(19,20,23);

	/* text */
	--font-color: rgb(155,162,177);

	/* Links / anchors */
	--anchor:#b0203c;
	--anchor-hover:#8a1a30;

	/* buttons or alert boxes with different colors */
	--bg-danger: #3c0e0e;
	--color-danger: #9e5858;
	--border-danger: #350505;

	--bg-warning: #905c00;
	--color-warning: #39280a;
	--border-warning: #322001;

	--bg-info: #005d90;
	--color-info: #00263e;
	--border-info: #022530;

	--bg-success: #009039;
	--color-success: #003f0c;
	--border-success: #00380c;

	--bg-default: rgb(15,17,20);
	--color-default: #968452;
	--border-default: #000;
}



body {
	font-family: 'arial', sans-serif;
	color:var(--font-color);
}


body, ul { margin: 0; padding: 0; }
li { list-style: none; }
a { text-decoration: none;color:var(--anchor); }
a:hover {color:var(--anchor-hover);}
a:hover, button:hover, input[type="submit"]:hover { cursor: pointer; }
* {-webkit-transition-duration: 0.2s;-moz-transition-duration: 0.2s;-o-transition-duration: 0.2s;transition-duration: 0.2s;}
*:hover {-webkit-transition-duration: 0s;-moz-transition-duration: 0s;-o-transition-duration: 0s;transition-duration: 0s;}

nav .container > div > ul > li > ul {
	position: absolute;
	border: 2px solid;
	border-top:none !important;
	border-color: var(--border);
	width: 200px;
}

nav { border: 10px solid var(--primary); }
nav .container { padding-left: 10px; }
nav .container > div > ul > li,
.modIcon:hover > i:nth-child(2) { display: inline-block; }

nav .container > div > ul > li > a { padding: 20px; }
nav .container > div > ul > li:hover > ul,
nav .container > div > ul > li > a,
nav .container > div > ul > li > ul > li > a { display: block; z-index: 1; }
nav .container > div > ul > li > ul > li > a { padding: 10px 20px; }
nav .container, .preventCollapse, .ellipsis { overflow: hidden; }

.topPane { margin-bottom: 10px; }
.leftPane { width: 70%; }
.rightPane { width: 29%; }
.searchForm { width: 200px; }
.body { padding: 10px 0px; }
table { width: 100%; }
td { padding: 10px 5px; }
.header { color: #b0203c; }
.feedContainer { margin:2rem 0; }
.pull-left { float:left; }
.pull-right { float:right; }
.well, .header { width: auto; }
.centralizeContent { text-align: center; }
.smedia { font-size: 2em; }
.newsEditor { margin: 12px 0 4px; border: 1px solid rgba(61,185,239,.38); border-radius: 8px; overflow: hidden; background: #0b111b; box-shadow: 0 8px 24px rgba(0,0,0,.2); }
.newsEditorToolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; padding: 8px; border-bottom: 1px solid #28384c; background: linear-gradient(90deg,#1a2637,#111a28); }
.newsEditorToolbar button { width: 31px; height: 29px; border: 1px solid #3a5069; border-radius: 5px; color: #dbeafa; background: #202f43; cursor: pointer; }
.newsEditorToolbar button:hover { color: #fff; border-color: #4cc9f0; background: #294765; }
.newsEditorDivider { width: 1px; height: 22px; margin: 0 4px; background: #3a5069; }
.newsEditorHint { margin-left: auto; color: #7890a8; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.newsEditorInput { display: block; width: 100%; min-height: 260px; padding: 15px; box-sizing: border-box; resize: vertical; border: 0; color: #dce8f5; background: #0b111b; font: 14px/1.65 Consolas, 'Courier New', monospace; }
.newsEditorInput:focus { outline: none; box-shadow: inset 0 0 0 1px rgba(76,201,240,.35); }
.newsEditorInput + .newsEditorPasteHint { display: block; padding: 0 15px 9px; color: #7890a8; font-size: 11px; }

/* Compact, framed news strip inspired by classic Tibia community portals. */
.newsTicker {
	margin: 0 0 1.25rem;
	padding: 7px;
	background: linear-gradient(135deg, #1b202a, #101319);
	border: 1px solid #475064;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .24), inset 0 0 0 1px rgba(255,255,255,.035);
}
.newsTickerTitle {
	display: flex;
	align-items: center;
	gap: 9px;
	min-height: 34px;
	padding: 0 10px;
	background: linear-gradient(90deg, #2b3548, #1e2635);
	border-bottom: 1px solid #58647a;
	color: #f0c86c;
}
.newsTickerTitle h2 { flex: 1; margin: 0; font-size: 1rem; letter-spacing: .08em; text-transform: uppercase; }
.newsTickerTitle a { color: #aebbd0; font-size: 1.2rem; }
.newsTickerTitle a:hover { color: #f0c86c; }
.newsTickerIcon { color: #e2a94f; font-size: 1rem; }
.newsTickerRows { padding: 6px 0 0; }
.newsTickerPanel { display: block; margin: 18px 0 22px; padding: 12px 12px 12px; background: rgba(9, 15, 25, .88); border: 1px solid rgba(76, 193, 235, .34); border-radius: 10px; box-shadow: 0 10px 24px rgba(0, 0, 0, .28), inset 0 1px rgba(255,255,255,.04); }
.newsTickerPanelHeading { display: flex; align-items: center; gap: 8px; min-height: 40px; margin: 0 -12px 12px; padding: 0 14px; color: #d9f3ff; border-bottom: 1px solid rgba(132,167,196,.17); border-radius: 9px 9px 0 0; background: linear-gradient(90deg, rgba(111,26,48,.26), rgba(19,62,100,.38)); font-family: Arial, sans-serif; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.newsTickerPanelHeading i { color: #65d4f7; font-size: 12px; }
.newsTickerRow {
	display: block;
	color: #c1c9d6;
	background: rgba(20, 29, 42, .72);
	border: 1px solid #2b3444;
	border-top: 0;
	font-size: .78rem;
}
.newsTickerRow:first-child { border-top: 1px solid #2b3444; }
.newsTickerRow:hover { color: #fff; background: rgba(35, 51, 70, .85); }
.newsTickerRow summary { display: flex; align-items: center; gap: 10px; min-width: 0; min-height: 31px; padding: 0 8px; cursor: pointer; list-style: none; }
.newsTickerRow summary::-webkit-details-marker { display: none; }
.newsTickerDate { flex: 0 0 112px; color: inherit; font-variant-numeric: tabular-nums; }
.newsTickerText { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.newsTickerArrow { flex: 0 0 18px; color: #71809a; text-align: right; font-size: .7rem; }
.newsTickerRow[open] .newsTickerArrow { transform: rotate(90deg); }
.newsTickerDetails { display: flex; justify-content: space-between; padding: 3px 35px 7px 8px; color: #e2b35c; font-size: .72rem; }
.newsTickerDetails a { color: #8dc9ec; }

@media (max-width: 640px) {
	.newsTickerDate { flex-basis: 88px; }
	.newsTickerRow summary { gap: 6px; font-size: .72rem; }
}

.banner {
    background: url("../img/Althea2.png");
    height: 240px;
    background-size: 30%;
    background-repeat: no-repeat;
	background-position: center;
    margin-top: 0px;
    border: 0px solid var(--primary);
}



.searchForm input {
    width: 100%;
    height: 25px;
    border: 1px solid var(--border);
    color: var(--font-color);
    font-size: 1em;
}

#countDownTimer {
	line-height: 2.3;
	padding: 0px 10px;
	color: #5390a8;
}

.modIcon > i:nth-child(2),
.modIcon:hover > i:nth-child(1),
/*.loginContainer, */
nav .container > div > ul > li > ul {
	display: none;
}

.loginForm {
    display: flex;
    flex-wrap: wrap;
}
.loginForm button:hover {
	background: #0000004d;
}
.loginForm button {
    width: 100%;
    margin-top: 10px;
    background: rgb(15,17,20);
    color: var(--font-color);
    height: 40px;
    border: 1px solid var(--border);
    font-size: 1em;
}

.loginForm input {
	width: 100%;
	height: 30px;
	border: none;
	color: #fff;
	font-size: 1em;
	border-bottom: 1px solid var(--border);
}

.main {
	width: 1220px;
	margin: 2rem auto;
	position: relative;
	z-index: 1;
}

.ellipsis {
	text-overflow: ellipsis;
	white-space: nowrap;
}

.alert-box {
	max-width: 500px;
	font-size: 14px;
	border-radius: 5px;
	border: 1px solid var(--third);
	margin: 0 auto;
	margin-bottom: 15px;
	text-align: center;
}

.alert-default {
	background: var(--bg-default);
	color: var(--color-default);
	border-color: var(--border-default);
}
.alert-info {
	background: var(--bg-info);
	color: var(--color-info);
	border-color: var(--border-info);
}
.alert-success {
    background: var(--bg-success);
    color: var(--color-success);
    border-color: var(--border-success);
}
.alert-warning {
	background: var(--bg-warning);
	color: var(--color-warning);
	border-color: var(--border-warning);
}
.alert-danger {
	background: var(--bg-danger);
	color: var(--color-danger);
	border-color: var(--border-danger);
}
.alert-collapse {display:inline-block;}
.alert-size1 { font-size: 12px; }
.alert-size2 { font-size: 15px; }
.alert-size3 { font-size: 18px; }
.alert-size4 { font-size: 20px; }


nav .container > div > ul > li > ul > li > a:hover,
.searchForm input, #countDownTimer, .loginForm input,
nav, footer, table, .header, .feedContainer {
	background: var(--primary);
}
.loginForm .well {
	width: 100%;
}

body, nav .container,
nav .container > div > ul > li > ul,
.leftPane, .rightPane, .topPane,
tr:nth-child(2n+1) {
	background: var(--secondary);
}

footer, .feedContainer,
nav .container, .topPane {
	border-bottom: 2px solid var(--border)
}

table, .header, .well, .smedia a {
	padding: 10px;
}

.searchForm input,
.loginForm input,
.alert-box {
	padding: 5px;
}

/* Znote AAC */
.leftPane img {
	max-width: 100%;
}
/* adding button style to select */
select {
	background: rgb(15,17,20);
	color: var(--font-color);
	height: 40px;
	border: 1px solid var(--border);
	font-size: 1em;
}
input {
	background: rgb(15,17,20);
	color: var(--font-color);
	height: 40px;
	border: 1px solid var(--border);
	font-size: 1em;
}
#loginContainer li {
	text-align: right;
}

ul.linkbuttons {
	margin-top: 8px;
	padding: 0 8px;
}
ul.linkbuttons li {
	display: inline-block;
	border: 1px solid rgba(64, 201, 255, .3);
	width: calc(50% - 10px);
	float: left;
	margin-bottom: 16px;
	text-align: center;
}
ul.linkbuttons li { border-radius: 7px; overflow: hidden; background: rgba(8, 26, 40, .56); box-shadow: inset 0 1px rgba(255,255,255,.025); transition: border-color .16s ease, background .16s ease, transform .16s ease; }
ul.linkbuttons li:hover { border-color: rgba(92, 211, 250, .7); background: linear-gradient(135deg, rgba(22,116,171,.34), rgba(18,48,76,.44)); transform: translateY(-1px); }
ul.linkbuttons li:nth-child(odd) {
	margin-right: 16px;
}
ul.linkbuttons li a {
	padding: 5px 0;
	display: inline-block;
	width: 100%;
	text-align: center;
	color: #a8ddf5;
	font-size: 12px;
	font-weight: 750;
}
ul.linkbuttons li a:hover { color: #effbff; }
ul.linkbuttons:after {
	content: '';
	display: block;
	clear: both;
}
.widget,
.widget .body,
.search_widget,
.search_widget .body {
	padding-bottom: 0;
}
.widget center {
	margin: auto;
}
.widget h3 {
	margin-bottom: 0;
}
.search_widget form {
	margin: auto;
}
.search_widget input {
	width: 50%;
	float: left;
}
.search_widget label {
	padding: 9px;
	float: left;
}
.search_widget form:after {
	display: block;
	content: '';
	clear: both;
}
div.relative {
	position: relative;
}
.search_widget #name_suggestion {
	position: absolute;
	width: 280px;
	left: -290px;
	display: none;
}
.search_widget #name_suggestion.show {
	display: block;
}
.search_widget .sname {
	text-align: right;
}
.search_widget .sname a {
	display: inline-block;
	background-color: black;
	padding: 10px 20px;
	border-bottom: 1px solid rgb(30,33,40);
}
.character_profile_search .search_widget form {
	display: flex;
	width: min(100%, 560px);
	margin: 0;
	gap: 8px;
}
.character_profile_search .search_widget input {
	flex: 1 1 auto;
	width: auto;
	height: 38px;
	float: none;
	padding: 8px 12px;
}
.character_profile_search .search_widget button {
	flex: 0 0 auto;
	min-width: 92px;
	height: 38px;
	padding: 8px 16px;
	border: 1px solid rgba(64, 201, 255, .45);
	border-radius: 7px;
	background: linear-gradient(135deg, #176fc2, #194b82);
	color: #f1f9ff;
	font-size: 11px;
	font-weight: 800;
	cursor: pointer;
}
.character_profile_search .search_widget button:hover { border-color: #72d9ff; background: linear-gradient(135deg, #2085df, #1d5c9d); }
.character_profile_search .search_widget #name_suggestion { top: 42px; left: 0; width: min(100%, 460px); z-index: 20; }
.character_profile_search .search_widget .sname { text-align: left; }
.page_credits .feedContainer .pull-left.leftPane {
	box-sizing: border-box;
	padding-left: 8px;
	padding-right: 8px;
}

.page_characterprofile #characterProfileTable thead th:first-of-type {
	position: relative;
	width: 154px;
	min-width: 154px;
	height: 106px;
	vertical-align: middle;
}
.page_characterprofile #characterProfileTable thead th:last-of-type {
	text-align: left;
	padding-left: 34px;
	vertical-align: middle;
}
.page_characterprofile .outfit {
	position: absolute;
	top: 50%;
	left: 16px;
	width: 92px;
	height: 92px;
	display: flex;
	align-items: center;
	justify-content: center;
	transform: translateY(-50%);
}
.page_characterprofile .outfit img {
	width: 92px;
	height: 92px;
	object-fit: contain;
	image-rendering: pixelated;
}
.page_characterprofile .flag {
	display: inline-flex;
	align-items: center;
}
.page_characterprofile .countryValue { display: flex; align-items: center; gap: 8px; }
.page_characterprofile #characterProfileTable thead h1 {
	margin: 0;
	font-size: clamp(20px, 2.35vw, 29px);
	letter-spacing: -.02em;
	text-transform: none;
}
.page_characterprofile .characterTitle {
	position: relative;
	display: flex;
	min-height: 78px;
	align-items: flex-start;
	justify-content: space-between;
	flex-direction: column;
	gap: 0;
}
.page_characterprofile .characterName { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 6px 10px; }
.page_characterprofile .characterHeading { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.page_characterprofile .characterPresence { display: inline-flex; align-items: center; gap: 5px; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.page_characterprofile .characterPresence i { display: inline-block; width: 6px; height: 6px; border-radius: 50%; }
.page_characterprofile .characterPresence.isOnline { color: #70dc9c; }
.page_characterprofile .characterPresence.isOnline i { background: #55d98d; box-shadow: 0 0 8px rgba(85, 217, 141, .7); }
.page_characterprofile .characterPresence.isOffline { color: #df7180; }
.page_characterprofile .characterPresence.isOffline i { background: #d85d6d; box-shadow: 0 0 8px rgba(216, 93, 109, .45); }
.page_characterprofile .vocationLabel { position: absolute; right: 0; bottom: 0; }
.page_characterprofile .vocationLabel { display: inline-flex; align-items: center; gap: 7px; color: #a9b7c9; font-size: 12px; font-weight: 700; letter-spacing: 0; text-transform: none; }
.page_characterprofile .vocationSprite { display: block; width: 18px; height: 18px; background-image: url('../img/ui/vocation-icons.png'); background-repeat: no-repeat; background-size: 180px 18px; image-rendering: pixelated; }
.page_characterprofile .vocationSprite--priest { background-position: 0 0; }
.page_characterprofile .vocationSprite--assassin { background-position: -18px 0; }
.page_characterprofile .vocationSprite--warlock { background-position: -36px 0; }
.page_characterprofile .vocationSprite--crusader { background-position: -54px 0; }
.page_characterprofile .vocationSprite--archer { background-position: -72px 0; }
.page_characterprofile .vocationSprite--knight { background-position: -90px 0; }
.page_characterprofile .vocationSprite--hunter { background-position: -108px 0; }
.page_characterprofile .vocationSprite--mage { background-position: -126px 0; }
.page_characterprofile .vocationSprite--berserker { background-position: -144px 0; }

@media (max-width: 640px) {
	.page_characterprofile #characterProfileTable thead th:first-of-type {
		width: 112px;
		min-width: 112px;
		height: 112px;
	}
	.page_characterprofile #characterProfileTable thead th:last-of-type {
		padding-left: 26px;
	}
	.page_characterprofile .outfit,
	.page_characterprofile .outfit img {
		width: 88px;
		height: 88px;
	}
	.page_characterprofile .outfit {
		left: 8px;
	}
	.page_characterprofile .flag {
		margin-left: 10px;
	}
	.page_characterprofile .characterTitle {
		gap: 8px;
	}
}
.postHolder {
	margin-bottom: 14px;
}
.postHolder:last-of-type {
	margin-bottom: 0;
}
.postHolder iframe {
	display: block;
	margin: auto;
}

/* Spell list elemental grouping */
.filter_spells {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 14px 0 22px;
}
.spell-type-filter {
	margin-top: 8px;
}
.filter_spells-label {
	flex: 0 0 auto;
	padding-top: 9px;
	color: #8493a8;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: none;
}
.filter_spells-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}
.spell-vocation-button {
	display: inline-flex;
	min-height: 34px;
	padding: 7px 12px;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(112, 137, 168, 0.28);
	border-radius: 7px;
	background: rgba(14, 24, 38, 0.88);
	color: #aab8c9;
	font-size: 11px;
	font-weight: 750;
	line-height: 1.2;
	text-decoration: none;
	transition: border-color 150ms ease, background 150ms ease, color 150ms ease, transform 150ms ease;
}
.spell-vocation-button:hover,
.spell-vocation-button:focus-visible {
	border-color: rgba(100, 211, 255, 0.65);
	background: rgba(25, 53, 76, 0.92);
	color: #f1fbff;
	transform: translateY(-1px);
}
.spell-vocation-button.is-active {
	border-color: #58cfff;
	background: linear-gradient(135deg, #12324a, #15283d);
	color: #71d9ff;
	box-shadow: 0 0 0 1px rgba(88, 207, 255, 0.12), 0 5px 15px rgba(0, 0, 0, 0.2);
}
@media (max-width: 640px) {
	.filter_spells {
		flex-direction: column;
		gap: 8px;
	}
	.filter_spells-label {
		padding-top: 0;
	}
	.spell-vocation-button {
		flex: 1 1 auto;
	}
}
.spell-element-row td {
	padding: 10px 14px !important;
	background: rgba(13, 24, 39, 0.96) !important;
	border-top: 1px solid rgba(111, 211, 255, 0.2);
	border-bottom: 1px solid rgba(111, 211, 255, 0.12);
	color: #e9f5ff;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-align: left;
	text-transform: uppercase;
}
.spell-element-row small {
	margin-left: 7px;
	color: #74859b;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}
.spell-element-dot {
	display: inline-block;
	width: 9px;
	height: 9px;
	margin-right: 9px;
	border-radius: 50%;
	background: #9aa7b8;
	box-shadow: 0 0 9px currentColor;
}
.spell-icon,
.spell-element-icon {
	display: inline-block;
	width: 32px;
	height: 32px;
	margin-right: 8px;
	vertical-align: middle;
	background-image: url('../img/defaultspells.png');
	background-repeat: no-repeat;
	image-rendering: auto;
}
.spell-element-icon {
	margin-right: 6px;
	background-image: url('../img/elementals.png');
}
.spell-element-basic .spell-element-dot { background: #8da0b6; color: #8da0b6; }
.spell-element-physical .spell-element-dot { background: #b8c2cf; color: #b8c2cf; }
.spell-element-fire .spell-element-dot { background: #ff765f; color: #ff765f; }
.spell-element-ice .spell-element-dot { background: #76d7ff; color: #76d7ff; }
.spell-element-earth .spell-element-dot { background: #a9c95b; color: #a9c95b; }
.spell-element-energy .spell-element-dot { background: #d9a0ff; color: #d9a0ff; }
.spell-element-holy .spell-element-dot { background: #ffe38a; color: #ffe38a; }
.spell-element-water .spell-element-dot { background: #5fa9ff; color: #5fa9ff; }
.spell-element-conjuring .spell-element-dot { background: #55c9e8; color: #55c9e8; }
.spell-element-weaponry .spell-element-dot { background: #c89861; color: #c89861; }
.spell-element-light .spell-element-dot { background: #f0d36e; color: #f0d36e; }
.spell-element-shadow .spell-element-dot,
.spell-element-death .spell-element-dot { background: #c05a82; color: #c05a82; }

/* Weapon skills are a distinct combat category, so make their divider stand out. */
.spell-element-weaponry td {
	background: linear-gradient(90deg, rgba(91, 59, 33, 0.96), rgba(19, 29, 43, 0.98)) !important;
	border-top: 2px solid rgba(220, 157, 86, 0.72);
	border-bottom: 1px solid rgba(220, 157, 86, 0.42);
	box-shadow: inset 4px 0 0 #d89b57, 0 3px 12px rgba(0, 0, 0, 0.2);
	color: #ffe2bb;
}
.spell-element-weaponry .spell-element-icon {
	transform: scale(1.08);
	filter: drop-shadow(0 0 5px rgba(216, 155, 87, 0.65));
}
.spell-element-weaponry .spell-element-dot {
	box-shadow: 0 0 11px #c89861;
}

/* Give every elemental group a clear, distinct divider treatment. */
.spell-element-basic td { --spell-accent: #8da0b6; }
.spell-element-fire td { --spell-accent: #ff765f; }
.spell-element-energy td { --spell-accent: #d9a0ff; }
.spell-element-ice td { --spell-accent: #76d7ff; }
.spell-element-earth td { --spell-accent: #a9c95b; }
.spell-element-shadow td,
.spell-element-death td { --spell-accent: #c05a82; }
.spell-element-light td { --spell-accent: #f0d36e; }
.spell-element-physical td { --spell-accent: #b8c2cf; }
.spell-element-life td { --spell-accent: #70d6a0; }
.spell-element-conjuring td { --spell-accent: #55c9e8; }

.spell-element-row:not(.spell-element-weaponry) td {
	background: linear-gradient(90deg, color-mix(in srgb, var(--spell-accent) 14%, rgba(13, 24, 39, 0.96)), rgba(13, 24, 39, 0.96)) !important;
	border-top-color: color-mix(in srgb, var(--spell-accent) 58%, transparent);
	border-bottom-color: color-mix(in srgb, var(--spell-accent) 32%, transparent);
	box-shadow: inset 4px 0 0 var(--spell-accent), 0 3px 12px rgba(0, 0, 0, 0.16);
	color: color-mix(in srgb, var(--spell-accent) 42%, #ffffff);
}
.spell-element-row:not(.spell-element-weaponry) .spell-element-dot {
	box-shadow: 0 0 11px var(--spell-accent);
}
.spell-entry td:first-child {
	border-left: 3px solid color-mix(in srgb, var(--spell-accent) 48%, transparent);
	color: color-mix(in srgb, var(--spell-accent) 58%, #d6deea);
}
.spell-entry-basic td { --spell-accent: #8da0b6; }
.spell-entry-fire td { --spell-accent: #ff765f; }
.spell-entry-energy td { --spell-accent: #d9a0ff; }
.spell-entry-ice td { --spell-accent: #76d7ff; }
.spell-entry-earth td { --spell-accent: #a9c95b; }
.spell-entry-shadow td,
.spell-entry-death td { --spell-accent: #c05a82; }
.spell-entry-light td { --spell-accent: #f0d36e; }
.spell-entry-physical td { --spell-accent: #b8c2cf; }
.spell-entry-life td { --spell-accent: #70d6a0; }
.spell-entry-weaponry td { --spell-accent: #c89861; }
.spell-entry-conjuring td { --spell-accent: #55c9e8; }

/* Althea modernization layer — intentionally additive for legacy page compatibility. */
:root {
	--primary: #11151f;
	--secondary: #080a11;
	--third: #d6dce8;
	--border: rgba(157, 177, 211, .16);
	--border-strong: rgba(97, 183, 255, .34);
	--font-color: #c8cfdd;
	--text-strong: #f2f5fb;
	--text-muted: #8f99ab;
	--anchor: #64c5ff;
	--anchor-hover: #a9e4ff;
	--crimson: #d53858;
	--crimson-dark: #721b34;
	--cyan: #40c9ff;
	--blue: #1674d1;
	--surface: rgba(15, 19, 29, .88);
	--surface-raised: rgba(23, 29, 42, .92);
	--radius-sm: 8px;
	--radius: 14px;
	--radius-lg: 22px;
	--shadow: 0 18px 55px rgba(0, 0, 0, .38);
	--focus: 0 0 0 3px rgba(64, 201, 255, .34);
}

html { scroll-behavior: smooth; overflow-x: hidden; }
* { box-sizing: border-box; }
body {
	min-height: 100vh;
	overflow-x: hidden;
	font-family: Inter, "Segoe UI", system-ui, -apple-system, sans-serif;
	font-size: 16px;
	line-height: 1.55;
	color: var(--font-color);
	background:
		linear-gradient(180deg, rgba(5,8,14,.12), rgba(5,8,14,.42)),
		url("../img/althea-world-background-v2.png") center top / cover fixed no-repeat,
		#05080e;
}
body::before {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
	background:
		radial-gradient(ellipse at 50% 8%, transparent 0 24%, rgba(2, 5, 10, .18) 68%, rgba(2, 5, 10, .58) 100%),
		linear-gradient(180deg, transparent 0 38rem, rgba(4, 7, 12, .38) 72rem, rgba(4, 7, 12, .72) 100%);
}
a { color: var(--anchor); }
a:hover { color: var(--anchor-hover); }
:focus-visible { outline: none; box-shadow: var(--focus); border-radius: 4px; }
.skipLink { position: fixed; left: 16px; top: -60px; z-index: 1000; padding: 10px 16px; background: white; color: #080a11; border-radius: 8px; }
.skipLink:focus { top: 12px; }
.main { width: min(1420px, calc(100% - 48px)); margin: 0 auto; }

.topBar { position: sticky; top: 0; z-index: 120; margin-inline: calc(50% - 50vw); padding-inline: max(24px, calc((100vw - 1420px) / 2)); border-bottom: 1px solid rgba(146, 181, 205, .14); background: linear-gradient(180deg, rgba(4, 7, 12, .9), rgba(4, 7, 12, .64)); box-shadow: 0 12px 30px rgba(0, 0, 0, .18); backdrop-filter: blur(15px) saturate(115%); }
.topBarInner { display: flex; align-items: center; gap: 10px; min-height: 58px; }
.topBarBrand { display: inline-flex; width: 42px; height: 42px; margin-right: 4px; flex: 0 0 42px; align-items: center; justify-content: center; }
.topBarBrand img { display: block; width: 40px; height: 40px; border-radius: 9px; object-fit: contain; }
.topBarLinks { display: flex; align-items: center; gap: 4px; }
.topBarLinks a { display: inline-flex; min-height: 36px; padding: 7px 10px; align-items: center; gap: 6px; color: #e6edf6; font-size: 12px; font-weight: 900; letter-spacing: .045em; text-transform: uppercase; white-space: nowrap; }
.topBarLinks a:hover { color: #62d2ff; }
.topBarLinks i { color: #4cc7f5; }
.topBarRight { display: flex; align-items: center; gap: 8px; min-width: 0; margin-left: auto; }
.topBarLogin { display: flex; align-items: center; gap: 7px; min-width: 0; }
.topBarLogin > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.topBarLogin > div { position: relative; }
.topBarLogin > div > i { position: absolute; left: 11px; top: 50%; z-index: 1; color: #79cdef; font-size: 11px; transform: translateY(-50%); }
.topBarLogin input { width: 124px; height: 38px; margin: 0; padding: 8px 10px 8px 31px; border: 1px solid rgba(126, 169, 207, .44); border-radius: 8px; color: #f4f8fd; background: rgba(9, 16, 26, .94); box-shadow: inset 0 1px 5px rgba(0,0,0,.35); font-size: 12px; }
.topBarLogin input::placeholder { color: #a7b4c5; opacity: 1; }
.topBarLogin input:hover { border-color: rgba(104, 190, 229, .62); }
.topBarLogin input:focus { border-color: rgba(82, 197, 248, .8); box-shadow: 0 0 0 3px rgba(64,201,255,.11), inset 0 1px 5px rgba(0,0,0,.3); outline: 0; }
.topBarLogin button, .topBarRegister, .topBarAccount, .topBarPlay, .topBarOnline { display: inline-flex; min-height: 36px; padding: 8px 11px; align-items: center; justify-content: center; gap: 7px; border-radius: 8px; font-size: 10px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.topBarLogin .topBarAccountButton { padding-inline: 9px; border: 0; color: #eef4fb; background: transparent; cursor: pointer; font-size: 12px; }
.topBarLogin .topBarAccountButton:hover { color: #62d2ff; }
.topBarRegister { border: 1px solid rgba(235, 74, 104, .36); color: #ffd269; background: rgba(102, 23, 45, .58); }
.topBarRegister:hover { color: #fff0bb; border-color: rgba(255, 96, 124, .65); }
.topBarAccount { margin-left: auto; border: 1px solid rgba(64, 201, 255, .3); color: #dff4ff; background: rgba(22, 116, 209, .28); }
.topBarRight .topBarAccount { margin-left: 0; }
.topBarActions { display: flex; align-items: center; gap: 8px; }
.topBarPlay { border: 1px solid rgba(64, 201, 255, .4); color: #e8f8ff; background: linear-gradient(135deg, rgba(22,116,209,.48), rgba(28,61,120,.4)); }
.topBarOnline { border: 1px solid rgba(77, 218, 143, .24); color: #aebdba; background: rgba(13, 38, 31, .72); }
.topBarOnline strong { color: #73e7a9; font-size: 13px; }
.topBarOnline span:last-child { font-size: 9px; }

.siteNav {
	position: sticky;
	top: 0;
	z-index: 100;
	margin-inline: calc(50% - 50vw);
	padding-inline: max(24px, calc((100vw - 1420px) / 2));
	border: 0;
	border-bottom: 1px solid var(--border);
	background: rgba(6, 8, 13, .84);
	backdrop-filter: blur(18px);
}
.siteNav .container { display: flex; align-items: center; min-height: 74px; padding: 0; overflow: visible; background: transparent; border: 0; }
.navBrand { display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 54px; margin-right: 20px; flex: none; }
.navBrand img { display: block; width: 52px; height: 52px; border-radius: 12px; object-fit: contain; }
.navContents { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.siteNav .pull-left, .siteNav .pull-right { float: none; }
.siteNav .container > .navContents > div > ul { display: flex; align-items: center; }
.siteNav .container > .navContents > div > ul > li { position: relative; display: flex; align-items: stretch; }
.siteNav .container > .navContents > div > ul > li > a { display: flex; align-items: center; gap: 5px; padding: 25px 13px; color: #dce2ed; font-size: 13px; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.siteNav .container > .navContents > div > ul > li > a:hover { color: white; background: rgba(255,255,255,.045); }
.siteNav .container > .navContents > div > ul > li > ul {
	display: none;
	position: absolute;
	top: 100%;
	bottom: auto;
	left: 0;
	z-index: 110;
	width: 230px;
	padding: 8px;
	border: 1px solid var(--border);
	border-radius: 0 0 var(--radius) var(--radius);
	background: rgba(11, 14, 22, .98);
	box-shadow: var(--shadow);
	transform-origin: top center;
}
.siteNav .container > .navContents > div > ul > li:hover > ul,
.siteNav .container > .navContents > div > ul > li:focus-within > ul { display: block; }
.siteNav .container > .navContents > div > ul > li > ul > li > a { padding: 11px 13px; border-radius: 7px; color: #bfc8d7; font-size: 14px; }
.siteNav .container > .navContents > div > ul > li > ul > li > a:hover { color: white; background: rgba(64, 201, 255, .1); }
.siteNav .navCta { margin-left: 8px; padding: 11px 16px !important; border: 1px solid rgba(64, 201, 255, .4); border-radius: 9px; background: linear-gradient(135deg, rgba(22,116,209,.45), rgba(28,61,120,.35)); }
.siteNav .navOnline { gap: 7px !important; margin-left: 9px; padding: 10px 12px !important; border: 1px solid rgba(77, 218, 143, .24); border-radius: 9px; background: rgba(13, 38, 31, .72); white-space: nowrap; }
.siteNav .navOnline:hover { border-color: rgba(77, 218, 143, .5); background: rgba(18, 57, 43, .82) !important; }
.navOnlineDot { width: 8px; height: 8px; flex: none; border-radius: 50%; background: #4dda8f; box-shadow: 0 0 0 3px rgba(77, 218, 143, .12), 0 0 10px rgba(77, 218, 143, .55); }
.siteNav .navOnline strong { color: #73e7a9; font-size: 14px; }
.siteNav .navOnline span:last-child { color: #aebdba; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.navToggle { display: none; margin-left: auto; padding: 9px 12px; gap: 8px; align-items: center; color: white; border: 1px solid var(--border); border-radius: 8px; background: var(--surface-raised); }

/* Left navigation accordion */
.siteFrame { display: grid; grid-template-columns: 238px minmax(0, 1fr); align-items: start; gap: 24px; }
.siteStage { min-width: 0; }
.siteNav {
	position: sticky;
	top: 18px;
	z-index: 90;
	margin: 18px 0 0;
	padding: 14px;
	max-height: calc(100vh - 36px);
	overflow-y: auto;
	border: 1px solid var(--border);
	border-radius: 14px;
	background: rgba(8, 11, 18, .94);
	box-shadow: 0 18px 45px rgba(0, 0, 0, .3);
	backdrop-filter: blur(18px);
}
.siteNav .container { display: block; min-height: 0; padding: 0; }
.sideNavMobileTitle { display: none; color: #83dcff; font-size: 11px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.siteNav .navBrand { display: flex; width: 64px; height: 64px; margin: 0 auto 14px; }
.siteNav .navBrand img { width: 62px; height: 62px; border-radius: 14px; }
.siteNav .navContents { display: block; width: 100%; }
.navLogin { display: grid; gap: 7px; margin-bottom: 10px; padding: 11px; border: 1px solid rgba(64, 201, 255, .2); border-radius: 10px; background: linear-gradient(145deg, rgba(15, 39, 58, .62), rgba(7, 12, 20, .8)); }
.navLoginTitle { display: flex; align-items: center; gap: 7px; margin-bottom: 2px; color: #8fdcff; font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.navLoginTitle i { color: #62cbf8; }
.navLogin label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.navLoginField { position: relative; }
.navLoginField > i { position: absolute; left: 10px; top: 50%; z-index: 1; color: #65788e; font-size: 10px; transform: translateY(-50%); }
.navLoginField input { width: 100%; height: 35px; margin: 0; padding: 7px 9px 7px 29px; border: 1px solid rgba(135, 160, 188, .2); border-radius: 7px; color: #eaf4ff; background: rgba(3, 7, 12, .7); font-size: 11px; }
.navLoginField input:focus { border-color: rgba(82, 197, 248, .55); }
.navLogin button { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 35px; border: 1px solid rgba(61, 185, 239, .4); border-radius: 7px; color: #eefaff; background: linear-gradient(135deg, rgba(22, 116, 209, .78), rgba(25, 79, 146, .76)); font-size: 10px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; cursor: pointer; }
.navLogin button:hover { border-color: rgba(104, 215, 255, .68); background: linear-gradient(135deg, rgba(27, 139, 235, .9), rgba(31, 91, 163, .9)); }
.navLoginRecovery { color: #77889c; font-size: 9px; text-align: center; }
.navLoginRecovery:hover { color: #a9dfff; }
.navRegister, .navAccountLink { display: grid; grid-template-columns: 18px minmax(0, 1fr) 12px; align-items: center; gap: 9px; min-height: 44px; margin-bottom: 9px; padding: 0 12px; border-radius: 9px; font-size: 11px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.navRegister { border: 1px solid rgba(235, 74, 104, .42); color: #ffd269; background: linear-gradient(90deg, rgba(116, 25, 50, .7), rgba(62, 16, 30, .72)); }
.navRegister:hover { color: #fff2c6; border-color: rgba(255, 96, 124, .7); background: linear-gradient(90deg, rgba(143, 31, 59, .82), rgba(81, 18, 37, .82)); }
.navRegister i, .navAccountLink i { color: #ef607c; }
.navRegister i:last-child, .navAccountLink i:last-child { font-size: 9px; text-align: right; }
.navAccountLink { border: 1px solid rgba(64, 201, 255, .26); color: #dcefff; background: rgba(18, 68, 98, .4); }
.navAccordion { display: grid; gap: 9px; }
.navAccordion details { overflow: hidden; border: 1px solid rgba(64, 201, 255, .2); border-radius: 9px; background: rgba(9, 24, 38, .7); }
.navAccordion summary { display: grid; grid-template-columns: 18px minmax(0, 1fr) 12px; align-items: center; gap: 9px; min-height: 44px; padding: 0 12px; color: #dceaf7; cursor: pointer; font-size: 11px; font-weight: 800; letter-spacing: .15em; list-style: none; text-transform: uppercase; user-select: none; }
.navAccordion summary::-webkit-details-marker { display: none; }
.navAccordion summary::after { content: "\f078"; color: #6e8ba2; font-family: FontAwesome; font-size: 10px; text-align: right; transition: transform .18s ease; }
.navAccordion details[open] summary::after { transform: rotate(180deg); }
.navAccordion details[open] summary { border-bottom: 1px solid rgba(64, 201, 255, .2); color: #8edfff; background: linear-gradient(90deg, rgba(22, 116, 209, .25), rgba(11, 35, 53, .12)); }
.navAccordion summary > i { color: #65cff8; font-size: 13px; text-align: center; }
.navGroupLinks { display: grid; gap: 2px; padding: 8px; background: rgba(3, 5, 9, .42); }
.navGroupLinks a { display: flex; align-items: center; gap: 10px; min-height: 35px; padding: 7px 9px; border-radius: 7px; color: #bec6d3; font-size: 12px; font-weight: 650; }
.navGroupLinks a i { width: 15px; color: #788396; text-align: center; }
.navGroupLinks a:hover { color: #fff; background: rgba(64, 201, 255, .1); }
.navGroupLinks a:hover i { color: #70d8ff; }
.navWiki { display: grid; grid-template-columns: 18px minmax(0, 1fr) 12px; align-items: center; gap: 9px; min-height: 44px; padding: 0 12px; border: 1px solid rgba(64, 201, 255, .25); border-radius: 9px; color: #8edfff; background: rgba(10, 42, 66, .7); font-size: 11px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.navWiki:hover { color: #fff; border-color: rgba(100, 215, 255, .55); background: rgba(14, 61, 94, .82); }
.navWiki i:first-child { color: #65cff8; }
.navWiki i:last-child { color: #557f9c; font-size: 10px; }
.navActions { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 12px; }
.siteNav .navCta, .siteNav .navOnline { display: flex; align-items: center; justify-content: center; min-height: 40px; margin: 0; padding: 8px 10px !important; }
.siteNav .navCta { border: 1px solid rgba(64, 201, 255, .35); border-radius: 8px; color: #dff5ff; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.siteNav .navOnline { border-radius: 8px; }

.banner {
	position: relative;
	display: grid;
	align-items: center;
	min-height: 150px;
	height: auto;
	margin: 0;
	padding: 38px 0 28px;
	border: 0;
	background: transparent;
	overflow: visible;
}
.banner::after { content: ""; position: absolute; inset: 12% auto 6% -12%; width: 680px; max-width: 74vw; border-radius: 50%; background: rgba(3, 6, 11, .44); filter: blur(44px); pointer-events: none; }
.bannerContent { position: relative; z-index: 1; display: flex; width: 100%; flex-direction: column; align-items: center; text-align: center; }
.page_home .bannerContent { display: flex; width: 100%; flex-direction: column; align-items: center; text-align: center; }
.heroTitle { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.bannerLogoLink { display: inline-flex; align-items: center; justify-content: center; }
.bannerLogoLink:hover { transform: translateY(-2px) scale(1.015); }
.bannerLogoLink:focus-visible { box-shadow: none; filter: drop-shadow(0 0 12px rgba(92, 205, 246, .5)); }
.bannerLogo { width: min(310px, 68vw); height: auto; filter: drop-shadow(0 12px 28px rgba(0,0,0,.6)); }
.bannerLogoLink:hover .bannerLogo { filter: brightness(1.12) drop-shadow(0 14px 30px rgba(0,0,0,.68)) drop-shadow(0 0 12px rgba(79, 196, 238, .24)); }
.page_home .banner { min-height: min(600px, calc(100svh - 58px)); align-items: center; padding: 22px 0 28px; }
.page_home .bannerLogo { width: min(390px, 72vw); margin-bottom: 8px; }
.heroOnlinePlayers { position: relative; z-index: 2; display: flex; align-items: center; gap: 7px; margin: -52px 0 13px; color: #b9d8e6; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; text-shadow: 0 2px 12px #020509; }
.heroOnlinePlayers span { width: 7px; height: 7px; border-radius: 50%; background: #64dda0; box-shadow: 0 0 9px rgba(100, 221, 160, .85); }
.heroOnlinePlayers:hover { color: #e8f8ff; }
.eyebrow { margin: 0 0 8px; color: #8ddcff; font-size: 12px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.banner h1 { max-width: 640px; margin: 0; color: white; font-family: Georgia, "Times New Roman", serif; font-size: clamp(42px, 5.4vw, 76px); line-height: .98; letter-spacing: -.035em; text-shadow: 0 10px 38px #000; }
.page_home .eyebrow { margin: 0 0 14px; color: #a4dff3; text-shadow: 0 2px 12px #020509; }
.bannerLead { max-width: 590px; margin: 14px 0 0; color: #c8d2e1; font-size: clamp(16px, 1.5vw, 20px); }
.bannerActions { display: flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 18px; }
.bannerActions .btn i { margin-right: 7px; }
.heroLogin { width: min(580px, 92vw); margin-top: 17px; padding-top: 13px; border-top: 1px solid rgba(128, 170, 198, .2); }
.heroLoginTitle { margin-bottom: 8px; color: #91a8b9; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.heroLoginTitle i { margin-right: 6px; color: #63c9ed; }
.heroLoginFields { display: flex; align-items: center; justify-content: center; gap: 8px; }
.heroLoginFields > div { position: relative; flex: 1 1 0; min-width: 0; }
.heroLoginFields > div > i { position: absolute; left: 11px; top: 50%; color: #6b9bb3; font-size: 11px; transform: translateY(-50%); }
.heroLoginFields input { width: 100%; height: 38px; padding: 8px 10px 8px 30px; border: 1px solid rgba(126, 169, 207, .34); border-radius: 8px; color: #f4f8fd; background: rgba(7, 13, 21, .8); font-size: 12px; }
.heroLoginFields input::placeholder { color: #96a8b7; }
.heroLoginFields input:focus { border-color: rgba(82, 197, 248, .72); outline: 0; box-shadow: var(--focus); }
.heroLoginFields button { height: 38px; padding: 8px 14px; border: 1px solid rgba(64, 201, 255, .4); border-radius: 8px; color: #e8f8ff; background: linear-gradient(135deg, rgba(22,116,209,.58), rgba(28,61,120,.48)); font-size: 10px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; white-space: nowrap; }
.heroLoginFields button i { margin-right: 5px; }
.heroLoginFields button:hover { border-color: rgba(104, 215, 255, .68); }
.srOnly { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.accountCharacter { display: flex; align-items: center; gap: 8px; }
.accountInfoTable { margin: 0 0 24px; width: 100%; }
.accountInfoTable th { width: 245px; color: var(--text-strong); font-weight: 800; }
.accountInfoTable td { color: var(--font-color); }
.accountInfoTable .accountStatus { color: #ff6f7f; font-weight: 800; }
.accountCharacter img { width: 32px; height: 32px; object-fit: contain; image-rendering: pixelated; }
.accountPresence { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.accountPresence i { width: 6px; height: 6px; border-radius: 50%; }
.accountPresence.isOnline { color: #70dc9c; }
.accountPresence.isOnline i { background: #55d98d; box-shadow: 0 0 8px rgba(85, 217, 141, .7); }
.accountPresence.isOffline { color: #df7180; }
.accountPresence.isOffline i { background: #d85d6d; box-shadow: 0 0 8px rgba(216, 93, 109, .45); }
.textAction { padding: 10px 6px; font-weight: 700; }
.page_home .bannerExplore { position: static; width: min(930px, 92vw); margin: 0; padding: 0; border: 0; background: transparent; }
.bannerExploreLinks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid rgba(129, 174, 205, .24); border-radius: 12px; background: rgba(5, 9, 15, .72); box-shadow: 0 14px 34px rgba(0, 0, 0, .32); backdrop-filter: blur(14px) saturate(115%); }
.bannerExploreLinks a { display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 9px; min-height: 64px; padding: 11px 14px; border-right: 1px solid rgba(129, 174, 205, .14); color: #dce8f2; }
.bannerExploreLinks a:last-child { border-right: 0; }
.bannerExploreLinks a:hover { color: #fff; background: linear-gradient(135deg, rgba(27, 112, 157, .23), rgba(126, 31, 53, .12)); }
.bannerExploreLinks a > i { color: #63caef; font-size: 15px; text-align: center; }
.bannerExploreLinks a:first-child > i { color: #64dda0; font-size: 9px; text-shadow: 0 0 9px rgba(100, 221, 160, .8); }
.bannerExploreLinks span, .bannerExploreLinks strong, .bannerExploreLinks small { display: block; min-width: 0; }
.bannerExploreLinks strong { overflow: hidden; font-size: 12px; letter-spacing: .02em; text-overflow: ellipsis; white-space: nowrap; }
.bannerExploreLinks small { overflow: hidden; margin-top: 2px; color: #7f91a5; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }

.feedContainer { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 24px; margin: 18px 0; padding: 0; border: 0; background: transparent; overflow: visible; }
.feedContainer > .leftPane, .feedContainer > .rightPane { float: none; width: auto; min-width: 0; background: transparent; }
.mainContentPanel { min-width: 0; overflow: hidden; border: 1px solid rgba(132, 167, 196, .2); border-radius: 14px; background: rgba(7, 11, 18, .82); box-shadow: 0 18px 45px rgba(0, 0, 0, .3); backdrop-filter: blur(15px) saturate(110%); }
.mainContentPanelHeader { display: flex; min-height: 54px; padding: 0 18px; align-items: center; gap: 11px; border-bottom: 1px solid rgba(132, 167, 196, .17); background: linear-gradient(90deg, rgba(111, 26, 48, .34), rgba(19, 62, 100, .42)); }
.mainContentPanelMark { width: 3px; height: 22px; border-radius: 999px; background: linear-gradient(#65d4f7, #2679bd); box-shadow: 0 0 12px rgba(76, 193, 235, .42); }
.mainContentPanelHeader h2 { margin: 0; color: #f1f5fa; font-family: Georgia, "Times New Roman", serif; font-size: 19px; letter-spacing: .025em; }
.mainContentPanel > .leftPane { float: none; width: 100%; min-width: 0; padding: 16px; background: transparent; }
.leftPane > h1:first-child { margin-top: 0; }
.main iframe { max-width: 100%; }
.leftPane td, .leftPane p { overflow-wrap: anywhere; }
.rightPane { display: flex; flex-direction: column; gap: 16px; }
.topPlayersWidget .body { padding: 8px; }
.topPlayersList { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.topPlayerCard { display: grid; grid-template-columns: 24px 48px minmax(0, 1fr); align-items: center; gap: 9px; min-height: 62px; padding: 6px 8px; border: 1px solid rgba(137, 159, 190, .11); border-radius: 9px; background: linear-gradient(90deg, rgba(255,255,255,.025), rgba(11,17,27,.7)); }
.topPlayerCard:hover { border-color: rgba(64, 201, 255, .25); background: linear-gradient(90deg, rgba(22,116,209,.09), rgba(11,17,27,.76)); }
.topPlayerRank { display: grid; width: 24px; height: 24px; place-items: center; border: 1px solid rgba(137, 159, 190, .16); border-radius: 50%; color: #8795a8; background: rgba(0, 0, 0, .22); font-size: 10px; font-weight: 900; }
.topPlayerCard:nth-child(1) .topPlayerRank { color: #ffe18a; border-color: rgba(240, 192, 70, .38); background: rgba(126, 88, 17, .2); }
.topPlayerCard:nth-child(2) .topPlayerRank { color: #dce7f2; border-color: rgba(184, 202, 219, .3); }
.topPlayerCard:nth-child(3) .topPlayerRank { color: #d69d72; border-color: rgba(198, 121, 68, .3); }
.topPlayerOutfit { display: grid; width: 48px; height: 48px; place-items: center; overflow: visible; border: 0; border-radius: 0; background: none; box-shadow: none; }
.topPlayerOutfit img { display: block; width: 64px; height: 64px; max-width: none; object-fit: contain; image-rendering: pixelated; transform: translate(-16px, -16px); filter: drop-shadow(0 4px 4px rgba(0, 0, 0, .55)); }
.topPlayerIdentity { min-width: 0; }
.topPlayerIdentity > a { display: block; overflow: hidden; color: #74d3ff; font-size: 12px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.topPlayerIdentity > a:hover { color: #c5efff; }
.topPlayerIdentity > span { display: flex; align-items: baseline; flex-wrap: wrap; gap: 3px 7px; margin-top: 4px; }
.topPlayerIdentity strong { color: #dce5f0; font-size: 10px; }
.topPlayerIdentity small { color: #7f8da1; font-size: 9px; }
.topPlayersEmpty { margin: 0; padding: 12px; color: #7f8da1; font-size: 11px; text-align: center; }
.discordCard { position: relative; isolation: isolate; overflow: hidden; padding: 19px; border: 1px solid rgba(120, 139, 255, .25); border-radius: var(--radius); background: linear-gradient(145deg, rgba(36, 30, 77, .92), rgba(14, 17, 29, .97) 58%, rgba(49, 15, 31, .9)); box-shadow: 0 14px 32px rgba(0, 0, 0, .24); }
.discordCardGlow { position: absolute; z-index: -1; top: -65px; right: -60px; width: 180px; height: 180px; border-radius: 50%; background: rgba(88, 101, 242, .24); filter: blur(18px); }
.discordCardHeader { display: flex; align-items: center; gap: 12px; }
.discordCardIcon { display: grid; width: 42px; height: 42px; flex: 0 0 42px; place-items: center; border: 1px solid rgba(147, 157, 255, .32); border-radius: 12px; color: #b9c0ff; background: rgba(88, 101, 242, .2); box-shadow: inset 0 0 16px rgba(118, 128, 255, .12); font-size: 17px; }
.discordCardIcon svg { width: 22px; height: 22px; }
.discordCardEyebrow { display: block; color: #aab3ff; font-size: 11px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.discordCard h2 { margin: 0; color: #f1f3ff; font-family: Georgia, "Times New Roman", serif; font-size: 20px; line-height: 1.15; }
.discordCard > p { margin: 13px 0; color: #aeb5c8; font-size: 12px; line-height: 1.6; }
.discordCardFeatures { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.discordCardFeatures span { display: inline-flex; align-items: center; gap: 5px; padding: 5px 7px; border: 1px solid rgba(151, 160, 203, .14); border-radius: 999px; color: #929cb4; background: rgba(5, 8, 15, .28); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.discordCardFeatures i { color: #8994f4; }
.discordCardButton { display: grid; grid-template-columns: 18px minmax(0, 1fr) 14px; align-items: center; gap: 8px; min-height: 42px; padding: 0 12px; border: 1px solid rgba(137, 148, 255, .38); border-radius: 9px; color: #f2f3ff; background: linear-gradient(135deg, rgba(88, 101, 242, .72), rgba(105, 67, 173, .66)); font-size: 11px; font-weight: 800; letter-spacing: .035em; }
.discordCardHeader + .discordCardButton { margin-top: 22px; }
.discordCardButton > svg { width: 16px; height: 16px; }
.discordCardButton i:last-child { color: #cbd0ff; font-size: 10px; text-align: right; transition: transform .16s ease; }
.discordCardButton:hover { color: #fff; border-color: rgba(174, 181, 255, .66); background: linear-gradient(135deg, rgba(101, 113, 255, .86), rgba(134, 69, 173, .8)); box-shadow: 0 8px 20px rgba(72, 79, 190, .22); }
.discordCardButton:hover i:last-child { transform: translateX(3px); }
.rightPane > .well, .postHolder > .well, .leftPane > table, .leftPane > form, .leftPane > .well {
	border: 1px solid rgba(126, 151, 184, .17);
	border-radius: 11px;
	background-color: #0b1019;
	background-image:
		linear-gradient(145deg, rgba(114, 27, 52, .055), transparent 38%),
		linear-gradient(315deg, rgba(22, 116, 209, .065), transparent 42%),
		linear-gradient(180deg, rgba(15, 21, 32, .98), rgba(8, 12, 19, .98));
	box-shadow: 0 14px 34px rgba(0,0,0,.25), inset 0 1px rgba(255,255,255,.025);
}
.rightPane > .well { padding: 18px; }
.header {
	position: relative;
	min-height: 42px;
	margin: -7px -7px 10px;
	padding: 14px 18px 12px;
	border: 0;
	border-bottom: 1px solid rgba(93, 178, 224, .2);
	color: #eef4fc;
	background-color: #111725;
	background-image: linear-gradient(100deg, rgba(114, 27, 52, .38), rgba(28, 31, 54, .72) 52%, rgba(22, 116, 209, .24));
	font-family: Inter, "Segoe UI", sans-serif;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .1em;
	text-shadow: 0 1px 2px rgba(0,0,0,.8);
	text-transform: uppercase;
}
.header::after {
	content: "";
	position: absolute;
	left: 18px;
	bottom: -1px;
	width: 58px;
	height: 1px;
	background: #50c9f4;
	box-shadow: 0 0 8px rgba(80, 201, 244, .48);
}
.body { padding: 14px 0 0; }
.aboutProjectActions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }
.downloadPanel { overflow: hidden; border-color: rgba(64,201,255,.2); background: radial-gradient(circle at 82% 15%, rgba(31,126,191,.2), transparent 32%), linear-gradient(135deg, rgba(18,23,35,.97), rgba(7,12,20,.96)); box-shadow: 0 22px 55px rgba(0,0,0,.25); }
.downloadPanelBody { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 28px 36px; padding: 34px; }
.downloadPanelInfo { display: flex; min-width: 0; align-items: center; gap: 18px; }
.downloadPanelIcon { display: grid; width: 76px; height: 76px; flex: none; place-items: center; border: 1px solid rgba(64,201,255,.32); border-radius: 20px; color: #72d6ff; background: radial-gradient(circle, rgba(35,138,196,.3), rgba(8,29,47,.5)); box-shadow: inset 0 0 25px rgba(64,201,255,.08); font-size: 31px; }
.downloadPlatform { display: inline-block; margin-bottom: 5px; color: #60caf8; font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.downloadPanelCopy h2 { margin: 0 0 7px; font-family: Georgia, "Times New Roman", serif; font-size: 27px; }
.downloadPanelCopy p { max-width: 530px; margin: 0; color: #8f9caf; font-size: 13px; line-height: 1.6; }
.downloadPrimary { display: inline-flex; min-width: 250px; min-height: 68px; padding: 13px 25px; align-items: center; justify-content: center; gap: 13px; border: 1px solid rgba(92,210,255,.62); border-radius: 13px; color: #f4fbff; background: linear-gradient(135deg, #167ac5, #244d9d); box-shadow: 0 13px 30px rgba(10,93,166,.3), inset 0 1px rgba(255,255,255,.13); white-space: nowrap; }
.downloadPrimary > i { font-size: 23px; }
.downloadPrimary > span, .downloadPrimary strong, .downloadPrimary small { display: block; }
.downloadPrimary strong { font-size: 13px; letter-spacing: .055em; text-transform: uppercase; }
.downloadPrimary small { margin-top: 3px; color: rgba(225,244,255,.68); font-size: 9px; font-weight: 600; letter-spacing: .03em; }
.downloadPrimary:hover { color: #fff; border-color: rgba(142,230,255,.9); box-shadow: 0 16px 36px rgba(10,107,185,.4), inset 0 1px rgba(255,255,255,.16); filter: brightness(1.1); transform: translateY(-2px); }
.downloadBenefits { display: flex; grid-column: 1 / -1; flex-wrap: wrap; gap: 10px 24px; padding-top: 18px; border-top: 1px solid rgba(157,177,211,.12); color: #7f8da1; font-size: 10px; font-weight: 700; }
.downloadBenefits i { margin-right: 6px; color: #5dcf99; }
.guildListRow { transition: background-color .15s ease; }
.guildListRow:hover { background: rgba(64,201,255,.055); }
.guildLogoLink { display: block; padding: 5px; border-radius: 10px; }
.guildLogoLink:hover { background: rgba(64,201,255,.06); }
.guildNameLink { color: #eaf3fc; font-family: Georgia, "Times New Roman", serif; font-size: 17px; font-weight: 700; }
.guildNameLink:hover { color: #6dd5ff; }
.guildMembersLink { display: inline-flex; margin-top: 9px; align-items: center; gap: 6px; color: #63cffb; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.guildMembersLink:hover { color: #a6e9ff; }
h1, h2, h3 { color: var(--text-strong); line-height: 1.2; }
h1 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(30px, 4vw, 48px); font-weight: 600; letter-spacing: -.025em; }
h2 { margin-top: 28px; font-size: 24px; }
h3 { font-size: 17px; }
p { color: var(--font-color); }
hr, .bighr { border: 0; border-top: 1px solid var(--border); }

table { border-collapse: separate; border-spacing: 0; padding: 0; color: var(--font-color); background: var(--surface); overflow: hidden; }
th, td { padding: 13px 14px; border-bottom: 1px solid rgba(157,177,211,.09); text-align: left; }
tr:nth-child(2n+1) { background: rgba(255,255,255,.014); }
tr:hover { background: rgba(64,201,255,.045); }
tr.yellow, thead tr { background: linear-gradient(90deg, rgba(114,27,52,.34), rgba(22,116,209,.22)); }
tr.yellow td, thead th { color: #f1f4fa; font-size: 12px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }

input, select, textarea {
	max-width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	color: var(--text-strong);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	background: #0a0e16;
	font: inherit;
}
input:hover, select:hover, textarea:hover { border-color: rgba(157,177,211,.35); }
input:focus, select:focus, textarea:focus { border-color: var(--cyan); box-shadow: var(--focus); outline: none; }
button, .btn, input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 18px;
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	color: white;
	background: linear-gradient(135deg, #176db8, #17467d);
	font: inherit;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .045em;
	text-transform: uppercase;
	box-shadow: 0 8px 20px rgba(0,0,0,.2);
}
button:hover, .btn:hover, input[type="submit"]:hover { color: white; filter: brightness(1.16); transform: translateY(-1px); }
button:active, .btn:active, input[type="submit"]:active { transform: translateY(0); }
.btn-primary, .btn-success { background: linear-gradient(135deg, #197dc9, #15508c); border-color: rgba(91,197,255,.38); }
.btn-secondary, .btn-info { background: rgba(255,255,255,.055); border-color: var(--border-strong); }
.btn-warning { background: linear-gradient(135deg, #9a6416, #61400e); }
.btn-danger { background: linear-gradient(135deg, #b92f4c, #721b34); }

#news, #changelogTable { margin: 0 0 18px; }
#news .zheadline { padding: 16px 18px; font-size: 13px; line-height: 1.55; }
#news p { margin: 0; padding: 8px 6px; line-height: 1.72; }
#highscoresTable tr:nth-child(2) td:first-of-type, #highscoresTable tr:nth-child(3) td:first-of-type, #highscoresTable tr:nth-child(4) td:first-of-type { color: #ffd36a; font-size: 18px; font-weight: 900; }
.highscoreName { white-space: nowrap; }
.highscorePresence { display: inline-block; width: 7px; height: 7px; margin: 0 7px 1px 2px; border-radius: 50%; vertical-align: middle; }
.highscorePresence.isOnline { background: #55d98d; box-shadow: 0 0 8px rgba(85, 217, 141, .8); }
.highscorePresence.isOffline { background: #e05262; box-shadow: 0 0 8px rgba(224, 82, 98, .7); }
.outfitColumn img { min-width: 64px; image-rendering: pixelated; }
.galleryImage { border-radius: 10px; box-shadow: var(--shadow); }
.ThreadTable .avatar { width: 155px; background: rgba(0,0,0,.18); }
.forumReply { width: 100% !important; }
.alert-box { border-radius: var(--radius-sm); }

footer.well { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 18px 32px; margin: 40px 0 24px; padding: 24px; border: 1px solid var(--border); border-radius: var(--radius); background: rgba(8,10,17,.82); }
.footerBrand { display: flex; align-items: center; gap: 15px; }
.footerBrand img { width: 108px; height: 42px; object-fit: contain; }
.footerBrand p { margin: 0; }
.footerBrand span, .footerMeta { color: var(--text-muted); font-size: 13px; }
.footerLinks { display: flex; flex-wrap: wrap; gap: 18px; }
.footerLinks a { color: #c8d2df; font-size: 13px; font-weight: 700; }
.footerStats { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px; padding-top: 16px; border-top: 1px solid var(--border); }
.footerStat { display: inline-flex; align-items: center; gap: 9px; min-height: 38px; padding: 8px 13px; border: 1px solid rgba(103,191,233,.18); border-radius: 9px; background: rgba(14,25,40,.72); color: var(--text-muted); font-size: 12px; }
.footerStat i { color: #62d2ff; font-size: 13px; }
.footerStat strong { margin-right: 4px; color: var(--text-strong); font-size: 14px; }
.footerMeta { grid-column: 1 / -1; margin: 0; padding-top: 16px; border-top: 1px solid var(--border); }

.pageIntro { position: relative; margin: 0 0 22px; padding: 26px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: linear-gradient(135deg, rgba(114,27,52,.22), rgba(15,19,29,.9) 45%, rgba(22,116,209,.18)); overflow: hidden; }
.housesFilter { margin: 0 0 22px; }
.housesFilter .header { margin-bottom: 12px; color: #9aa7b8; font-size: 12px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.pageIntro::after { content: ""; position: absolute; width: 220px; height: 220px; right: -90px; top: -100px; border-radius: 50%; background: rgba(64,201,255,.08); filter: blur(8px); }
.pageIntro h1 { margin: 0 0 9px; }
.pageIntro p:not(.eyebrow) { max-width: 680px; margin: 0; }
.rankingCategories { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.rankingCategories a { padding: 8px 13px; border: 1px solid var(--border); border-radius: 999px; color: #b9c3d2; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; background: rgba(0,0,0,.18); }
.rankingCategories a:hover, .rankingCategories .active { color: white; border-color: var(--border-strong); background: rgba(22,116,209,.22); }
.rankingTitle { margin: 0 0 13px; font-size: 20px; }
.rankingFilters { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; margin-bottom: 16px; padding: 14px !important; }
.rankMedal { display: inline-grid; place-items: center; width: 30px; height: 30px; border: 1px solid currentColor; border-radius: 50%; font-weight: 900; }
.rankGold { color: #f4c75e; background: rgba(244,199,94,.11); }
.rankSilver { color: #d4dbe5; background: rgba(212,219,229,.09); }
.rankBronze { color: #d48d5a; background: rgba(212,141,90,.1); }
.rankNumber { display: inline-block; min-width: 30px; color: var(--text-muted); text-align: center; font-weight: 800; }

/* Monsters */
.bestiaryStats { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.bestiaryStats span { display: inline-flex; align-items: center; gap: 7px; padding: 8px 11px; border: 1px solid var(--border); border-radius: 999px; color: #aeb9ca; background: rgba(0,0,0,.18); font-size: 12px; }
.bestiaryStats strong { color: #78d9ff; }
.bestiarySearch { margin-bottom: 16px; padding: 18px !important; }
.bestiarySearch label { display: block; margin-bottom: 8px; color: #dfe7f3; font-size: 12px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.bestiarySearch > div { position: relative; display: flex; gap: 9px; }
.bestiarySearch > div > i { position: absolute; left: 15px; top: 15px; color: #6e7b8e; }
.bestiarySearch input { flex: 1; padding-left: 40px; }
.bestiaryResultsHeader { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 18px 2px; }
.bestiaryResultsHeader p { margin: 0; }
#monsterSearchResults { transition: opacity .12s ease; }
#monsterSearchResults.isFiltering { opacity: .48; }
.monsterGrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 18px 10px; padding: 14px 6px 20px; }
.monsterCard { display: flex; min-width: 0; flex-direction: column; align-items: center; gap: 8px; padding: 8px 5px; color: #dce4f0; text-align: center; }
.monsterCard:hover { color: #78d9ff; transform: translateY(-2px); }
.monsterCardIcon { display: grid; width: 76px; height: 76px; place-items: center; color: #66788c; }
.monsterCardIcon img { display: block; width: auto; height: auto; max-width: 72px; max-height: 72px; object-fit: contain; image-rendering: pixelated; }
.monsterCardIcon i { font-size: 25px; }
.monsterCard > strong { max-width: 100%; font-family: Georgia, "Times New Roman", serif; font-size: 12px; font-weight: 500; line-height: 1.25; overflow-wrap: anywhere; }
.bestiaryPagination { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 22px; }
.bestiaryPagination a, .bestiaryPagination span { padding: 9px 13px; border: 1px solid var(--border); border-radius: 8px; background: rgba(15,19,29,.85); }
.bestiaryPagination span { color: #8491a5; }
.bestiaryBreadcrumb { margin-bottom: 14px; }
.bestiaryBreadcrumb a { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; }
.monsterDetail { padding: 16px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: linear-gradient(135deg, rgba(114,27,52,.18), rgba(15,19,29,.94) 48%, rgba(22,116,209,.14)); }
.monsterDetailHeader { display: flex; align-items: center; gap: 12px; }
.monsterSigil { display: grid; place-items: center; width: 68px; height: 68px; flex: none; border: 1px solid rgba(213,56,88,.3); border-radius: 18px; color: #f06a84; background: rgba(114,27,52,.2); font-size: 25px; box-shadow: 0 0 24px rgba(170,35,67,.12); }
.monsterPortrait { position: relative; display: grid; place-items: center; width: 104px; height: 104px; flex: none; border: 0; border-radius: 0; color: #f06a84; background: none; font-size: 25px; box-shadow: none; overflow: visible; }
.monsterPortrait img { position: static; display: block; width: 96px; height: 96px; object-fit: contain; image-rendering: pixelated; filter: drop-shadow(0 8px 8px rgba(0,0,0,.55)); }
.monsterDetailHeader h2 { margin: 2px 0 4px; font-family: Georgia, serif; font-size: 27px; }
.monsterDetailHeader p { margin: 0; }
.monsterLevelControl { display: grid; grid-template-columns: minmax(0, 1fr) 110px auto; align-items: end; gap: 10px; margin-top: 20px; padding: 13px; border: 1px solid rgba(64,201,255,.16); border-radius: 10px; background: rgba(5,11,18,.34); }
.monsterLevelControl label { display: flex; flex-direction: column; gap: 3px; }
.monsterLevelControl label span { color: #e7eef8; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.monsterLevelControl label small { color: #718197; font-size: 10px; }
.monsterLevelControl input { width: 100%; min-height: 40px; }
.monsterLevelControl button { min-height: 40px; padding: 8px 15px; border: 1px solid rgba(64,201,255,.36); border-radius: 7px; color: #edf9ff; background: linear-gradient(135deg, rgba(22,116,209,.7), rgba(31,67,126,.72)); font-size: 10px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.monsterBossNotice { margin: 18px 0 0; padding: 11px 13px; border: 1px solid rgba(221,171,75,.18); border-radius: 9px; color: #c9b47e; background: rgba(98,68,18,.1); font-size: 11px; }
.monsterBossNotice i { margin-right: 7px; }
.monsterVitals { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.monsterVitals > li { padding: 9px 11px; border-left: 2px solid rgba(157,177,211,.2); background: rgba(0,0,0,.12); }
.monsterVitals span, .monsterVitals strong, .monsterVitals small { display: block; }
.monsterVitals span { color: #7f8da2; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.monsterVitals strong { margin: 3px 0; color: #eef4fb; font-size: 23px; }
.monsterVitals small { color: #66758a; }
.attackSection { margin-top: 24px; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: rgba(8,13,21,.72); }
.combatHeading { margin-bottom: 5px; }
.combatHeading .eyebrow { margin: 0; color: #6ed9ff; }
.combatSubheading { margin: 0 0 12px; font-size: 21px; }
.defenseHeading { margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(157,177,211,.12); }
.attackGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.attackItem { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 16px; padding: 14px; border: 1px solid rgba(205,73,92,.16); border-radius: 10px; background: rgba(84,20,34,.06); }
.attackName { display: flex; min-width: 0; align-items: center; gap: 9px; }
.attackName i { color: #f07183; font-size: 16px; }
.combatTypeIcon { display: block; width: auto; height: auto; flex: 0 0 auto; image-rendering: pixelated; }
.attackName h3 { overflow: hidden; margin: 0; color: #e8eef7; font-family: inherit; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.attackDamage { color: #f4f7fb; font-size: 17px; text-align: right; white-space: nowrap; }
.attackDamage small { display: block; color: #738197; font-size: 8px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.attackMeta { display: flex; grid-column: 1 / -1; flex-wrap: wrap; gap: 6px; }
.attackMeta span { padding: 4px 7px; border: 1px solid rgba(157,177,211,.1); border-radius: 999px; color: #8290a4; background: rgba(0,0,0,.12); font-size: 9px; }
.defenseGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.defenseStat { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; padding: 14px; border: 1px solid rgba(83,211,151,.18); border-radius: 10px; background: rgba(32,116,77,.07); }
.defenseStat i { color: #69d29a; font-size: 17px; }
.defenseStat span { color: #a7b5c5; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.defenseStat strong { color: #dff8e9; font-size: 18px; }
.defenseAbility { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 16px; padding: 14px; border: 1px solid rgba(83,211,151,.18); border-radius: 10px; background: rgba(32,116,77,.07); }
.defenseAbility .attackName i { color: #69d29a; }
.emptyState.compact { padding: 22px; }
.resistanceSection { margin-top: 24px; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: rgba(8,13,21,.72); }
.resistanceGrid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 9px; }
.resistanceItem { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 3px 8px; min-width: 0; padding: 12px; border: 1px solid rgba(157,177,211,.12); border-radius: 10px; background: rgba(255,255,255,.025); }
.resistanceItem i { grid-row: 1 / 3; color: #75849a; font-size: 18px; }
.resistanceItem .combatTypeIcon { grid-row: 1 / 3; }
.resistanceItem span { overflow: hidden; color: #8492a6; font-size: 9px; font-weight: 800; letter-spacing: .05em; text-overflow: ellipsis; text-transform: uppercase; }
.resistanceItem strong { color: #aab5c4; font-size: 16px; }
.resistanceItem.resistant { border-color: rgba(73,204,139,.2); background: rgba(36,125,84,.09); }
.resistanceItem.resistant i, .resistanceItem.resistant strong { color: #69d29a; }
.resistanceItem.weak { border-color: rgba(240,91,111,.2); background: rgba(145,38,57,.09); }
.resistanceItem.weak i, .resistanceItem.weak strong { color: #f07183; }
.lootSection { margin-top: 24px; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: rgba(8,13,21,.72); }
.sectionHeading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 13px; }
.sectionHeading h2 { margin: 2px 0 0; }
.sectionHeading > p { max-width: 360px; margin: 0; color: #7d899b; font-size: 12px; text-align: right; }
.lootTableWrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius); }
.lootSortButton { display: inline-flex; padding: 0; align-items: center; gap: 6px; border: 0; color: inherit; background: none; font: inherit; text-transform: inherit; cursor: pointer; }
.lootSortButton span { color: #66768c; font-size: 12px; }
.lootSortButton:hover, .lootSortButton.active { color: #7cd5ff; }
.lootSortButton.active span { color: #7cd5ff; }
.lootTable td:first-child { display: flex; align-items: center; gap: 10px; }
.lootItem { position: relative; display: inline-flex; align-items: center; gap: 10px; outline: none; cursor: help; }
.lootItem:hover, .lootItem:focus, .lootItem:focus-within { z-index: 40; }
.lootIcon { position: relative; display: grid; place-items: center; width: 32px; height: 32px; overflow: hidden; color: #7cd5ff; }
.lootIcon img { position: absolute; top: 0; left: 0; display: block; width: auto; max-width: none; height: 32px; image-rendering: pixelated; }
.lootTooltip { position: absolute; z-index: 30; top: calc(100% + 8px); left: 42px; display: flex; width: 250px; padding: 12px; flex-direction: column; gap: 5px; border: 1px solid rgba(64,201,255,.28); border-radius: 10px; color: #cbd5e3; background: rgba(7,11,18,.98); box-shadow: 0 14px 38px rgba(0,0,0,.55); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(5px); transition: opacity .13s ease, transform .13s ease, visibility .13s; }
.lootTable tbody tr:nth-last-child(-n+4) .lootTooltip { top: auto; bottom: calc(100% + 8px); }
.lootItem:hover .lootTooltip, .lootItem:focus .lootTooltip, .lootItem:focus-within .lootTooltip { opacity: 1; visibility: visible; transform: translateY(0); }
.lootTooltipHeader { display: flex; align-items: center; gap: 9px; padding-bottom: 7px; border-bottom: 1px solid rgba(157,177,211,.16); }
.lootTooltipHeader > b { color: #eef6ff; font-size: 13px; text-transform: capitalize; }
.lootTooltipIcon { position: relative; width: 32px; height: 32px; flex: none; overflow: hidden; }
.lootTooltipIcon img { position: absolute; top: 0; display: block; width: auto; max-width: none; height: 32px; image-rendering: pixelated; }
.lootTooltip > em { margin-top: 6px; color: #8795a8; font-size: 10px; font-style: normal; line-height: 1.45; }
.lootTooltipStats { display: block; margin-top: 2px; color: #d5e3f2; font-size: 10px; line-height: 1.45; }
.lootTooltipStats > small { display: block; color: #78d9ff; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.lootTooltipStats ul { margin: 2px 0 0 14px; padding: 0; list-style: disc; }
.lootTooltipStats li { margin: 1px 0; }
.lootTooltip .lootTooltipDescription { margin-top: 3px; padding-top: 7px; border-top: 1px solid rgba(157,177,211,.12); color: #aebccd; }
.lootTooltipValue { margin-top: 3px; color: #e7c775; font-size: 10px; font-weight: 800; }
.lootTable td:first-child > span:not(.lootItem):last-child { display: grid; gap: 2px; }
.lootTable td:first-child small { color: #68778b; font-size: 9px; font-weight: 600; }
.lootTable .baseChance { display: block; margin-top: 3px; color: #64748a; font-size: 9px; white-space: nowrap; }
.chanceValue { color: #dbe8f7; font-weight: 800; }
.rarityBadge { display: inline-flex; padding: 4px 8px; border: 1px solid currentColor; border-radius: 999px; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.rarityBadge.common { color: #9da9b9; }
.rarityBadge.uncommon { color: #69d294; }
.rarityBadge.rare { color: #6cbcff; }
.rarityBadge.very-rare { color: #de74ff; }
.emptyState { padding: 42px 22px; border: 1px dashed rgba(157,177,211,.22); border-radius: var(--radius); background: rgba(10,14,22,.62); text-align: center; }
.emptyState > i { color: #53647a; font-size: 28px; }
.emptyState h2, .emptyState h3 { margin-bottom: 7px; }
.emptyState p { color: #7f8da0; }

@media (max-width: 640px) {
	.bestiaryStats { gap: 7px; margin-top: 14px; }
	.bestiaryStats span { padding: 7px 9px; font-size: 11px; }
	.bestiarySearch { padding: 13px !important; }
	.bestiarySearch > div { flex-wrap: wrap; }
	.bestiarySearch input { min-width: 0; min-height: 44px; }
	.bestiarySearch button { width: 100%; min-height: 42px; }
	.bestiaryResultsHeader { align-items: flex-start; flex-direction: column; gap: 5px; margin: 14px 2px; }
	.monsterGrid { grid-template-columns: repeat(auto-fill, minmax(86px, 1fr)); gap: 13px 7px; padding: 8px 0 16px; }
	.monsterCardIcon { width: 62px; height: 62px; }
	.monsterCardIcon img { max-width: 58px; max-height: 58px; }
	.monsterCard > strong { font-size: 11px; }
	.bestiaryPagination { gap: 7px; }
	.bestiaryPagination a, .bestiaryPagination span { padding: 8px 9px; font-size: 11px; }
	.monsterDetail { padding: 14px; border-radius: 12px; }
	.monsterDetailHeader { gap: 10px; }
	.monsterPortrait { width: 72px; height: 72px; }
	.monsterPortrait img { width: 68px; height: 68px; }
	.monsterDetailHeader h2 { font-size: 25px; line-height: 1.05; }
	.monsterLevelControl { grid-template-columns: minmax(0, 1fr) 86px; padding: 11px; }
	.monsterLevelControl label, .monsterLevelControl button { grid-column: 1 / -1; }
	.monsterLevelControl button { width: 100%; }
	.monsterVitals { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
	.monsterVitals > li { padding: 9px; }
	.monsterVitals strong { font-size: 20px; }
	.attackSection, .resistanceSection { margin-top: 17px; padding: 13px; border-radius: 12px; }
	.attackGrid, .defenseGrid { grid-template-columns: 1fr; }
	.attackItem, .defenseAbility, .defenseStat { padding: 11px; }
	.resistanceGrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
	.resistanceItem { padding: 10px; }
	.sectionHeading { align-items: flex-start; flex-direction: column; gap: 3px; }
	.sectionHeading > p { text-align: left; }
	.lootTableWrap { overflow: visible; border: 0; }
	.lootTable { width: 100%; table-layout: fixed; border: 1px solid var(--border); border-radius: 10px; font-size: 11px; }
	.lootTable th, .lootTable td { padding: 9px 6px; }
	.lootTable th:first-child, .lootTable td:first-child { width: 47%; }
	.lootTable th:nth-child(2), .lootTable td:nth-child(2) { width: 14%; }
	.lootTable th:nth-child(3), .lootTable td:nth-child(3) { width: 21%; }
	.lootTable th:nth-child(4), .lootTable td:nth-child(4) { width: 18%; }
	.lootTable td:first-child { gap: 5px; }
	.lootItem { gap: 5px; min-width: 0; }
	.lootItem > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.lootSortButton { gap: 2px; font-size: 9px; }
	.lootSortButton span { font-size: 9px; }
	.rarityBadge { padding: 3px 4px; font-size: 8px; }
	.lootTooltip, .lootTable tbody tr:nth-child(-n+3) .lootTooltip { position: fixed; z-index: 200; top: auto; right: 12px; bottom: 12px; left: 12px; width: auto; max-height: 68vh; overflow-y: auto; transform: translateY(8px); }
	.lootTooltipHeader { position: sticky; top: -12px; margin: -12px -12px 0; padding: 12px; background: rgba(7,11,18,.98); }
	.lootItem:hover .lootTooltip, .lootItem:focus .lootTooltip, .lootItem:focus-within .lootTooltip { transform: translateY(0); }
}

/* Global player hover card */
.playerHoverCard { position: fixed; z-index: 500; width: 290px; padding: 14px; border: 1px solid rgba(64,201,255,.28); border-radius: 13px; color: #cbd5e3; background: linear-gradient(145deg, rgba(18,24,36,.98), rgba(7,10,17,.98)); box-shadow: 0 20px 55px rgba(0,0,0,.55), inset 0 1px rgba(255,255,255,.035); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(5px); transition: opacity .14s ease, transform .14s ease, visibility .14s; }
.playerHoverCard.isVisible { opacity: 1; visibility: visible; transform: translateY(0); }
.playerHoverCard.isLoading { width: auto; padding: 9px 12px; color: #8190a5; font-size: 11px; }
.playerHoverHeader { display: flex; align-items: center; gap: 11px; padding-bottom: 11px; border-bottom: 1px solid rgba(157,177,211,.13); }
.playerHoverPortrait { display: grid; place-items: center; width: 54px; height: 54px; flex: none; border: 1px solid rgba(64,201,255,.22); border-radius: 12px; background: radial-gradient(circle, rgba(39,133,194,.2), rgba(5,9,16,.85)); overflow: hidden; }
.playerHoverPortrait img { position: static; width: 58px; height: 58px; object-fit: contain; image-rendering: pixelated; transform: translate(-9px, -9px); filter: drop-shadow(0 5px 5px rgba(0,0,0,.55)); }
.playerHoverIdentity { min-width: 0; }
.playerHoverIdentity strong, .playerHoverIdentity span { display: block; }
.playerHoverIdentity strong { overflow: hidden; color: #f1f5fb; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.playerHoverIdentity span { margin-top: 3px; color: #7fcfff; font-size: 11px; }
.playerHoverStats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 10px; }
.playerHoverStats > div { min-width: 0; padding: 8px 7px; border: 1px solid rgba(157,177,211,.1); border-radius: 8px; background: rgba(255,255,255,.025); text-align: center; }
.playerHoverStats span, .playerHoverStats strong { display: block; }
.playerHoverStats span { overflow: hidden; color: #78869a; font-size: 9px; font-weight: 700; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.playerHoverStats span i { margin-right: 4px; color: #5dcaff; }
.playerHoverStats strong { margin-top: 3px; color: #e9f0f8; font-size: 14px; }
.playerHoverHint { display: block; margin-top: 10px; color: #69788d; font-size: 9px; text-align: right; }
