/*
 * XFinit Gaming forum identity layer
 * Loaded after the Prosilver Dark colour preset so upgrades remain isolated.
 */

:root {
	--xfg-bg: #050304;
	--xfg-bg-soft: #100709;
	--xfg-surface: rgba(20, 10, 12, 0.95);
	--xfg-surface-2: rgba(31, 14, 17, 0.93);
	--xfg-surface-3: #241216;
	--xfg-border: rgba(255, 183, 70, 0.17);
	--xfg-border-strong: rgba(255, 70, 62, 0.48);
	--xfg-cyan: #ffbd45;
	--xfg-blue: #d91d35;
	--xfg-red: #ff4655;
	--xfg-text: #fff7ef;
	--xfg-muted: #bda7a0;
	--xfg-shadow: 0 24px 70px rgba(0, 0, 0, 0.38);
}

html {
	background: var(--xfg-bg) !important;
}

body {
	background-color: var(--xfg-bg) !important;
	background-image: none !important;
	color: var(--xfg-text);
	font-family: Inter, "Segoe UI", Arial, Helvetica, sans-serif;
	min-height: 100vh;
}

/* Paint the artwork once on its own fixed layer. A stable large viewport
   height keeps mobile browser chrome from resizing the cover image on scroll. */
body::before {
	content: "";
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	height: 100vh;
	height: 100lvh;
	background-color: var(--xfg-bg);
	background-image:
		linear-gradient(180deg, rgba(5, 3, 4, 0.14), rgba(5, 3, 4, 0.3)),
		url("./images/xfg-forum-clear-v3.png");
	background-position: center top;
	background-repeat: no-repeat;
	background-size: cover;
	pointer-events: none;
	transform: translateZ(0);
	z-index: 0;
}

a,
a:link,
a:visited {
	color: var(--xfg-cyan);
	transition: color 160ms ease, opacity 160ms ease;
}

a:hover,
a:focus {
	color: #ffffff;
	text-decoration: none;
}

.wrap {
	background: transparent !important;
	border: 0;
	box-shadow: none;
	margin: 28px auto 0;
	max-width: 1280px;
	min-width: 290px;
	padding: 0 28px 42px;
	position: relative;
	z-index: 1;
}

/* The masthead shares the page's glass instead of covering it with artwork. */
.headerbar {
	background:
		linear-gradient(110deg, #08090e7a, #0c09102e),
		radial-gradient(ellipse at 8% 30%, #b51c2926, transparent 65%),
		var(--xfg-glass-sheen), var(--xfg-glass-pane) !important;
	border: 1px solid #ffdda338 !important;
	border-radius: 24px;
	box-shadow: var(--xfg-glass-shadow);
	-webkit-backdrop-filter: var(--xfg-glass-backdrop);
	backdrop-filter: var(--xfg-glass-backdrop);
	overflow: hidden;
	padding: 0;
	position: relative;
}

.headerbar::before {
	background: linear-gradient(90deg, transparent, #ffe6a3b3 16%, #ff684a66 48%, transparent 90%);
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 2;
}

.headerbar::after {
	background: linear-gradient(90deg, rgba(255, 189, 69, 0.72), transparent 48%);
	bottom: 0;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	right: 0;
}

.headerbar > .inner {
	position: relative;
}

.site-description {
	align-content: center;
	box-sizing: border-box;
	column-gap: 32px;
	display: grid;
	float: none;
	grid-template-columns: 144px minmax(0, 1fr);
	grid-template-rows: auto auto;
	min-height: 238px;
	padding: 42px 48px;
	text-align: left;
	width: auto;
}

.site-description .logo {
	align-self: center;
	float: none;
	grid-row: 1 / 3;
	margin: 0;
	padding: 0;
}

.site_logo {
	background: none !important;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	display: block;
	filter: drop-shadow(0 5px 12px #0005);
	float: none;
	height: 144px;
	overflow: visible;
	padding: 0;
	position: relative;
	width: 144px;
}

.xfg-logo-image {
	display: block;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

/* Animate a reflection clipped to the actual alpha silhouette, never a tile. */
.site_logo::after {
	animation: xfg-logo-reflection 9s ease-in-out infinite;
	background: linear-gradient(112deg, transparent 42%, #fff4d7a6 49%, #ffffffc4 50%, transparent 57%) -160% center / 250% 100% no-repeat;
	content: "";
	inset: 0;
	-webkit-mask: url("./images/xfg-logo-transparent-v2.png") center / contain no-repeat;
	mask: url("./images/xfg-logo-transparent-v2.png") center / contain no-repeat;
	pointer-events: none;
	position: absolute;
}
@keyframes xfg-logo-reflection {
	0%, 65% { background-position: 160% center; opacity: 0; }
	69% { opacity: .55; }
	88% { opacity: .55; }
	92%, 100% { background-position: -160% center; opacity: 0; }
}
.site-description .logo:focus-visible {
	outline: 2px solid var(--xfg-cyan);
	outline-offset: 8px;
}

.site-description h1 {
	align-self: end;
	color: #ffffff;
	float: none;
	font-family: Bahnschrift, "Arial Narrow", "Segoe UI", sans-serif;
	font-size: clamp(30px, 3.7vw, 48px);
	font-weight: 800;
	grid-column: 2;
	letter-spacing: 0.015em;
	line-height: 1.08;
	margin: 0;
	overflow: visible;
	text-overflow: clip;
	text-shadow: 0 2px 18px #0004;
	text-transform: uppercase;
	white-space: normal;
}

.site-description .xfg-title-line {
	display: block;
}

.site-description > p:not(.skiplink) {
	align-self: start;
	color: #d5c9c5;
	font-size: 14px;
	grid-column: 2;
	letter-spacing: 0.01em;
	line-height: 1.6;
	margin: 13px 0 0;
	max-width: 610px;
	overflow: visible;
	text-overflow: clip;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.9);
	white-space: normal;
}

.search-header {
	background: rgba(5, 11, 18, 0.78);
	border: 1px solid var(--xfg-border-strong);
	border-radius: 12px;
	bottom: auto;
	box-shadow: 0 12px 35px rgba(0, 0, 0, 0.25);
	float: none;
	margin: -16px 48px 30px 224px;
	max-width: 340px;
	padding: 5px;
	position: relative;
	right: auto;
	top: auto;
	width: auto;
}

.search-header .inputbox {
	background: transparent;
	border: 0;
	box-shadow: none;
	color: var(--xfg-text);
	height: 32px;
	padding-left: 10px;
}

.search-header .button {
	background: transparent;
	border: 0;
	box-shadow: none;
}

/* Navigation */
.navbar {
	background: rgba(20, 10, 12, 0.94) !important;
	border: 1px solid var(--xfg-border) !important;
	border-radius: 14px;
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
	color: var(--xfg-muted);
	margin-top: 13px;
	padding: 7px 12px;
}

.navbar ul.linklist {
	padding: 1px 0;
}

.navbar a,
.navbar a:link,
.navbar a:visited {
	color: #b9cad9;
	font-weight: 600;
}

.navbar a:hover,
.navbar a:focus,
.navbar .icon {
	color: var(--xfg-cyan);
}

.breadcrumbs .crumb a {
	font-weight: 700;
}

.page-body {
	margin-top: 16px;
}

.time,
.responsive-hide,
.mark-read {
	color: var(--xfg-muted);
}

/* Forum and topic cards */
.forabg,
.forumbg {
	background: var(--xfg-surface) !important;
	border: 1px solid var(--xfg-border) !important;
	border-radius: 18px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.22);
	margin-bottom: 18px;
	overflow: hidden;
	padding: 0;
}

.forabg > .inner,
.forumbg > .inner {
	margin: 0;
}

ul.topiclist li.header {
	background:
		linear-gradient(90deg, rgba(217, 29, 53, 0.25), rgba(255, 189, 69, 0.05) 60%, transparent),
		#200d12;
	border-bottom: 1px solid rgba(255, 189, 69, 0.24);
	color: #dcecff;
	font-family: Bahnschrift, "Segoe UI", sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	padding: 13px 16px;
	text-transform: uppercase;
}

ul.topiclist li.header dt,
ul.topiclist li.header dd {
	color: #cfe9fa;
}

ul.topiclist li.row {
	background: linear-gradient(90deg, rgba(217, 29, 53, 0.055), transparent 38%), rgba(24, 11, 14, 0.94) !important;
	border-bottom: 1px solid rgba(255, 183, 70, 0.11);
	border-left: 3px solid transparent;
	padding: 9px 13px;
	transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;
}

ul.topiclist li.row:last-child {
	border-bottom: 0;
}

ul.topiclist li.row:hover {
	background: linear-gradient(90deg, rgba(217, 29, 53, 0.18), rgba(255, 189, 69, 0.035) 54%, transparent), #261014 !important;
	border-left-color: var(--xfg-cyan);
}

ul.topiclist li.row dt,
ul.topiclist li.row dd {
	border-color: rgba(255, 183, 70, 0.12);
}

a.forumtitle,
a.topictitle {
	color: #f2f8ff;
	font-family: Bahnschrift, "Segoe UI", sans-serif;
	font-size: 17px;
	font-weight: 700;
	letter-spacing: 0.015em;
}

a.forumtitle:hover,
a.topictitle:hover {
	color: var(--xfg-cyan);
}

.forum-image img,
.topiclist .icon {
	filter: drop-shadow(0 0 7px rgba(255, 189, 69, 0.2));
}

ul.topiclist dd.topics,
ul.topiclist dd.posts,
ul.topiclist dd.views {
	color: #d8e7f4;
	font-family: Bahnschrift, "Segoe UI", sans-serif;
	font-size: 13px;
}

ul.topiclist dd.lastpost {
	color: var(--xfg-muted);
	line-height: 1.45;
}

ul.topiclist dd.lastpost a {
	font-weight: 700;
}

/* Panels, posts, profiles and control pages */
.panel,
.post,
.cp-main .pm,
.rules,
.phpbb_alert {
	background: var(--xfg-surface) !important;
	border: 1px solid var(--xfg-border) !important;
	border-radius: 16px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.2);
	color: var(--xfg-text);
}

.panel,
.post {
	margin-bottom: 16px;
	padding: 18px;
}

.post:target {
	border-color: var(--xfg-border-strong);
	box-shadow: 0 0 0 1px rgba(255, 189, 69, 0.12), 0 18px 44px rgba(0, 0, 0, 0.28);
}

.postheader {
	background: linear-gradient(90deg, var(--xfg-blue), var(--xfg-red) 48%, var(--xfg-cyan)) !important;
	border-radius: 12px 12px 0 0;
	box-shadow: 0 3px 16px rgba(217, 29, 53, 0.28);
	height: 4px;
}

.postprofile {
	border-color: var(--xfg-border);
	color: var(--xfg-muted);
}

.content,
.postbody,
.signature,
.panel p,
.panel li {
	color: #cbd9e6;
}

h2,
.panel h2,
.content h2,
.panel-container h2 {
	color: #f4f9ff;
	font-family: Bahnschrift, "Segoe UI", sans-serif;
	font-weight: 750;
	letter-spacing: 0.02em;
}

h3,
.panel h3,
.stat-block h3 {
	border-bottom-color: rgba(255, 189, 69, 0.22);
	color: #dcecff;
	font-family: Bahnschrift, "Segoe UI", sans-serif;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.stat-block {
	background: linear-gradient(135deg, rgba(217, 29, 53, 0.1), rgba(20, 10, 12, 0.92));
	border: 1px solid var(--xfg-border);
	border-radius: 14px;
	margin: 18px 0;
	padding: 16px 18px;
}

.stat-block h3 {
	margin-top: 0;
	padding-bottom: 10px;
}

.stat-block p {
	color: var(--xfg-muted);
	line-height: 1.7;
	margin-bottom: 0;
}

.tabs .tab > a,
.minitabs .tab > a,
.navigation a {
	background: #101a26;
	border-color: var(--xfg-border);
	color: #b8cada;
}

.tabs .activetab > a,
.minitabs .activetab > a,
.navigation .active-subsection a,
.tabs .tab > a:hover,
.navigation a:hover {
	background: linear-gradient(135deg, rgba(217, 29, 53, 0.28), rgba(255, 189, 69, 0.09));
	border-color: var(--xfg-border-strong);
	color: #ffffff;
}

/* Form controls and actions */
.inputbox,
textarea,
select,
fieldset.quick-login input.inputbox {
	background: #100709;
	border: 1px solid rgba(255, 183, 70, 0.22);
	border-radius: 8px;
	box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.28);
	color: var(--xfg-text);
}

.inputbox:hover,
textarea:hover,
select:hover,
.inputbox:focus,
textarea:focus,
select:focus {
	border-color: var(--xfg-cyan);
	box-shadow: 0 0 0 3px rgba(255, 189, 69, 0.11);
	outline: none;
}

.button,
a.button1,
input.button1,
input.button3,
a.button2,
input.button2 {
	background: linear-gradient(135deg, var(--xfg-blue), #ff4b32);
	border: 1px solid rgba(106, 225, 255, 0.58);
	border-radius: 9px;
	box-shadow: 0 8px 22px rgba(217, 29, 53, 0.24);
	color: #ffffff;
	font-weight: 700;
	text-shadow: none;
	transition: transform 150ms ease, box-shadow 150ms ease, filter 150ms ease;
}

.button:hover,
.button:focus,
a.button1:hover,
input.button1:hover,
a.button2:hover,
input.button2:hover,
input.button3:hover {
	background: linear-gradient(135deg, #ff3349, var(--xfg-cyan));
	border-color: #ffd578;
	box-shadow: 0 10px 28px rgba(255, 189, 69, 0.25);
	color: #1a0705;
	filter: brightness(1.06);
	transform: translateY(-1px);
}

.button-secondary,
.button-secondary .icon {
	color: #dcecff;
}

.pagination li a,
.pagination li span {
	background: #211014;
	border-color: var(--xfg-border);
	border-radius: 7px;
	color: #c8d9e7;
}

.pagination li.active span,
.pagination li a:hover {
	background: var(--xfg-blue);
	border-color: var(--xfg-cyan);
	color: #ffffff;
}

.dropdown .dropdown-contents,
.dropdown-extended .dropdown-contents {
	background: #190c0f !important;
	border: 1px solid var(--xfg-border-strong);
	border-radius: 12px;
	box-shadow: var(--xfg-shadow);
}

.dropdown li,
.dropdown li li,
.dropdown-extended .header,
.dropdown-extended .footer {
	border-color: var(--xfg-border);
}

/* Footer */
.page-footer .navbar {
	margin-top: 24px;
}

.copyright {
	color: #6f8498;
	font-size: 11px;
	line-height: 1.7;
	padding: 18px 0 6px;
}

/* Mobile */
@media (max-width: 900px) {
	.site-description {
		column-gap: 24px;
		grid-template-columns: 120px minmax(0, 1fr);
		padding: 32px;
	}

	.site_logo {
		height: 120px;
		width: 120px;
	}

	.search-header {
		margin-left: 176px;
		margin-right: 32px;
	}
}

@media (max-width: 700px) {
	.wrap {
		margin-top: 0;
		padding: 16px 10px 28px;
		padding-top: calc(16px + env(safe-area-inset-top, 0px));
	}

	.headerbar,
	.headerbar > .inner {
		border-radius: 20px;
	}

	.site-description {
		column-gap: 16px;
		grid-template-columns: 84px minmax(0, 1fr);
		min-height: 200px;
		padding: 28px 22px;
	}

	.site_logo {
		height: 84px;
		width: 84px;
	}

	.site-description .logo {
		display: block !important;
		margin: 0;
	}

	.site-description h1 {
		align-self: start;
		font-size: clamp(24px, 5vw, 32px);
		margin-top: 6px;
	}

	.site-description > p:not(.skiplink) {
		display: block;
		font-size: 12px;
		grid-column: 1 / -1;
		line-height: 1.6;
		margin-top: 16px;
	}

	.site-description .logo { grid-row: 1; }

	.search-header {
		bottom: 14px;
		left: 16px;
		right: 16px;
		width: auto;
	}

	.navbar {
		border-radius: 12px;
		margin-top: 10px;
	}

	.headerbar + .navbar {
		margin-top: 10px;
	}

	.forabg,
	.forumbg,
	.panel,
	.post,
	.stat-block {
		border-radius: 12px;
	}

	ul.topiclist li.row {
		padding-left: 7px;
		padding-right: 7px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site_logo::after {
		animation: none;
		display: none;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* Shared XFG glass: the Matchmaking strip's actual backdrop filter.
   Only the backdrop is blurred. Forum text, artwork and status icons stay sharp. */
:root {
  --xfg-glass-backdrop: blur(16px) saturate(110%);
  --xfg-glass-pane: #06080c80;
  --xfg-glass-sheen: linear-gradient(135deg,#fff4df04,transparent 45%,#ffc8c803);
  --xfg-glass-top: linear-gradient(90deg,#fff5df80,#c7ad6f38 18%,transparent 42%,#fff2de62 78%,#79685230);
  --xfg-glass-side: linear-gradient(180deg,#fff0b755,transparent 38%,#c6a76d30 62%,#fff3e270 82%,#79685228);
  --xfg-glass-bottom: linear-gradient(90deg,#79685228,#ffe8bc38 20%,transparent 52%,#fff1d262 78%,#79685220);
  --xfg-glass-shadow: inset 0 1px 0 #fff0ce0d,inset 0 -1px 0 #0005,0 8px 20px #0004;
}

/* Override opaque theme paint, including its !important colour presets.
   Category rows share their containing pane instead of stacking dark fills. */
#phpbb .headerbar,
#phpbb :is(.panel,.post,.rules,.phpbb_alert,.cp-main .pm),
#phpbb .navbar::before,
#phpbb .dropdown .dropdown-contents,
#phpbb .xfg-home-glass,
#phpbb #faqlinks,
#phpbb #faqlinks ~ .panel,
#phpbb :is(.forabg,.forumbg,.xfg-command-center,.xfg-network-panel,
  .xfg-quick-login,.stat-block,.xfg-cta,.button,a.button1,input.button1,
  a.button2,input.button2,input.button3,.pagination li a,.pagination li.active span,
  .xfg-section-heading .mark-read) {
  background-color: var(--xfg-glass-pane) !important;
  background-image: var(--xfg-glass-top),var(--xfg-glass-side),
    var(--xfg-glass-bottom),var(--xfg-glass-side),var(--xfg-glass-sheen) !important;
  background-position: top,right,bottom,left,0 0 !important;
  background-size: 100% 1px,1px 100%,100% 1px,1px 100%,100% 100% !important;
  background-repeat: no-repeat !important;
  background-origin: border-box !important;
  background-clip: border-box !important;
  border-color: #ffdda32b !important;
  box-shadow: var(--xfg-glass-shadow);
  -webkit-backdrop-filter: var(--xfg-glass-backdrop);
  backdrop-filter: var(--xfg-glass-backdrop);
}

/* Keep navigation above later cards. Its separate glass layer lets an open
   menu blur the page behind it instead of stopping at the navbar's backdrop. */
#phpbb #wrap .navbar {
  position: relative;
  z-index: 10;
  overflow: visible;
  background: transparent !important;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
#phpbb .navbar::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: -1;
}
#phpbb .dropdown .pointer {
  border-color: #ffdda347 transparent;
}
#phpbb .dropdown .pointer-inner {
  border-color: #171418d9 transparent;
}
#phpbb .dropdown-extended :is(.header,.footer) {
  background: #fff4df08 !important;
}
#phpbb .dropdown-contents > li > a {
  color: var(--xfg-text);
  border-radius: 6px;
}
#phpbb .dropdown-contents > li > a:is(:hover,:focus-visible) {
  background: #ffbd4517 !important;
  color: #ffffff;
}
#phpbb .dropdown-contents a:focus-visible {
  outline: 2px solid var(--xfg-cyan);
  outline-offset: -2px;
}
#phpbb .xfg-home-glass,
#phpbb #faqlinks,
#phpbb #faqlinks ~ .panel .content {
  color: #d5c9c5;
}

#phpbb :is(.forabg,.forumbg) ul.topiclist,
#phpbb :is(.forabg,.forumbg) ul.topiclist li.row {
  background: transparent !important;
}
#phpbb :is(.forabg,.forumbg) ul.topiclist li.header {
  background: linear-gradient(90deg,#ffbd450c,transparent 70%) !important;
}
#phpbb :is(.forabg,.forumbg) ul.topiclist li.row {
  color: #cbd9e6;
}
#phpbb :is(.forabg,.forumbg) ul.topiclist li.row:is(:hover,:focus-within) {
  background: #ffbd450a !important;
  border-left-color: var(--xfg-cyan);
}
#phpbb :is(.forabg,.forumbg) ul.topiclist li.row.reported {
  background: #d3114133 !important;
}

/* Keep interaction and selected states distinct without an opaque gradient. */
#phpbb :is(.xfg-cta,.button,a.button1,input.button1,a.button2,input.button2,
  input.button3,.pagination li a,.xfg-section-heading .mark-read) {
  color: #fff7ef;
  text-shadow: none;
  filter: none;
}
#phpbb :is(.xfg-cta-primary,a.button1,input.button1,.pagination li.active span) {
  border-color: #ffbd4570 !important;
  color: #ffe4ad;
}
#phpbb :is(.xfg-cta,.button,a.button1,input.button1,a.button2,input.button2,
  input.button3,.pagination li a,.xfg-section-heading .mark-read):is(:hover,:focus-visible) {
  border-color: #ffbd4599 !important;
  box-shadow: var(--xfg-glass-shadow),0 0 16px #ffbd451f;
  color: #ffffff;
  filter: none;
}
#phpbb :is(.xfg-cta,.button,a.button1,input.button1,a.button2,input.button2,
  input.button3,.pagination li a,.xfg-section-heading .mark-read):focus-visible {
  outline: 2px solid #ffbd45;
  outline-offset: 3px;
}
#phpbb :is(.xfg-cta,.button,a.button1,input.button1,a.button2,input.button2,
  input.button3,.pagination li a):active {
  box-shadow: inset 0 2px 8px #0005,0 0 18px #ffbd4526;
}

@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  :root { --xfg-glass-pane: #0a111bed; }
}

/* Discussion-led homepage. Reuse the shared glass material and fixed artwork. */
.section-index .site-description { grid-template-columns:100px minmax(0,1fr); column-gap:25px; min-height:174px; padding:27px 32px; }
.section-index .site_logo { width:100px; height:100px; }
.section-index .site-description h1 { font-size:34px; }
.section-index .site-description > p:not(.skiplink) { font-size:12px; margin-top:10px; }
.xfg-home-welcome,.xfg-home-columns,.xfg-post-picker { box-sizing:border-box; }
.xfg-home-welcome { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:20px 0 26px; padding:23px 26px; border:1px solid; border-radius:16px; }
.xfg-home-welcome h2 { font-size:27px; font-weight:800; line-height:1.14; letter-spacing:-.02em; text-transform:uppercase; border:0; padding:0; margin:0; }
.xfg-home-welcome .xfg-cta { text-transform:none; letter-spacing:0; font-size:13px; min-height:46px; white-space:nowrap; width:auto; }
.xfg-home-columns { display:grid; grid-template-columns:minmax(0,1fr) 285px; gap:24px; align-items:start; margin-bottom:26px; }
.xfg-discussions,.xfg-home-channels { min-width:0; scroll-margin-top:16px; }
.xfg-home-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:15px; min-height:25px; }
.xfg-home-heading h2 { font-size:20px; font-weight:650; letter-spacing:0; border:0; padding:0; margin:0; }
.xfg-mark-read { font-size:11px; text-align:right; }
.xfg-discussion-search { display:flex; align-items:center; gap:10px; padding:4px 5px 4px 13px; border:1px solid; border-radius:10px; margin-bottom:12px; }
.xfg-discussion-search > .icon { font-size:14px; color:var(--xfg-muted); }
#phpbb .xfg-discussion-search input { flex:1; min-width:0; width:100%; font:inherit; font-size:13px; line-height:1.4; padding:10px 0; background:transparent; border:0; color:var(--xfg-text); box-shadow:none; }
.xfg-discussion-search input::placeholder { color:#c4b5ae; opacity:1; }
.xfg-search-submit { font:inherit; font-size:12px; color:#ffe0a3; border:1px solid #ffdda338; border-radius:7px; padding:8px 13px; background:#ffe2a308; cursor:pointer; min-height:36px; }
.xfg-game-filters { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:15px; }
#phpbb .xfg-game-filters a { display:inline-flex; align-items:center; justify-content:center; padding:8px 12px; min-height:18px; border:1px solid; border-radius:8px; color:#d5c9c5; font-size:12px; line-height:1.5; }
#phpbb .xfg-game-filters a.is-selected { background-color:#69481a4a!important; color:#ffe4ad; border-color:#ffcb6b88!important; box-shadow:inset 0 1px 0 #ffebb320; }
#phpbb .xfg-game-filters a:hover { border-color:#ffcb6b88!important; color:white; }
.xfg-topic-feed { border:1px solid; border-radius:16px; overflow:hidden; }
.xfg-discussion-row { display:grid; grid-template-columns:40px minmax(0,1fr) 24px; align-items:start; gap:13px; padding:22px; }
.xfg-discussion-row + .xfg-discussion-row { border-top:1px solid #cfb39a26; }
.xfg-discussion-row:hover,.xfg-discussion-row:focus-within { background:#ffc65d07; }
.xfg-author-initials { display:grid; place-items:center; width:40px; height:40px; border:1px solid #e6c59825; border-radius:12px; background:linear-gradient(145deg,#593733aa,#281f2966); color:#ffdeb2; font-size:13px; font-weight:600; }
.xfg-discussion-content { min-width:0; }
.xfg-discussion-content h3 { font-family:inherit; font-size:15px; font-weight:650; line-height:1.5; letter-spacing:0; text-transform:none; margin:0; padding:0; border:0; overflow-wrap:anywhere; }
#phpbb .xfg-discussion-content h3 a { color:#fff7ef; }
#phpbb .xfg-discussion-content h3 a:hover { color:#ffcb6b; }
.xfg-discussion-content h3 .icon { color:#d6c1a8; font-size:12px; }
.xfg-topic-meta,.xfg-topic-activity { display:flex; align-items:center; gap:8px 13px; flex-wrap:wrap; color:#c4b5ae; font-size:11px; line-height:1.6; margin-top:7px; overflow-wrap:anywhere; }
#phpbb .xfg-topic-meta a { color:#dfc4a4; }
#phpbb .xfg-topic-activity a { color:#c4b5ae; }
.xfg-topic-activity a:hover { text-decoration:underline; }
.xfg-game-tag { border:1px solid #dfc2a535; color:#edc88b; border-radius:5px; background:#af7a3220; padding:1px 6px; }
.xfg-unread-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:#ffcb6b; margin:0 6px 2px 0; }
.xfg-topic-open { display:grid; place-items:center; min-height:38px; color:#baa798; font-size:18px; }
.xfg-feed-empty { padding:38px 20px; text-align:center; color:#c4b5ae; }
.xfg-feed-empty > .icon { font-size:26px; margin-bottom:10px; color:#e3c08d; }
.xfg-feed-empty h3 { font:600 16px/1.4 "Segoe UI",sans-serif; text-transform:none; letter-spacing:0; border:0; margin:0 0 9px; }
.xfg-feed-empty p { font-size:13px; line-height:1.6; margin:0 0 13px; }
.xfg-feed-empty a { font-size:12px; }
.xfg-feed-footer { display:flex; justify-content:space-between; gap:15px; margin-top:12px; font-size:11px; color:#c4b5ae; line-height:1.6; }
.xfg-feed-footer nav { display:flex; gap:14px; }
.xfg-channel-list { border:1px solid; border-radius:16px; padding:5px; }
#phpbb .xfg-channel-link { display:grid; grid-template-columns:23px minmax(0,1fr) 10px; align-items:start; gap:8px; padding:17px 11px; border-radius:10px; color:#fff7ef; }
.xfg-channel-link + .xfg-channel-link { border-top:1px solid #cfb39a17; }
.xfg-channel-link:hover,.xfg-channel-link:focus-visible { background:#ffd57c0c; }
.xfg-channel-icon { color:#ffcb6b; font-size:17px; margin-top:2px; }
.xfg-channel-link strong { display:block; font-size:13px; font-weight:600; line-height:1.4; }
.xfg-channel-link small { display:block; font-size:11px; line-height:1.55; color:#c4b5ae; margin-top:5px; }
.xfg-channel-chevron { color:#baa798; margin-top:3px; }
.xfg-no-channels { padding:15px; font-size:12px; }
.xfg-post-picker { border:1px solid; border-radius:12px; margin:-10px 0 24px; padding:0 18px; scroll-margin-top:18px; }
.xfg-post-picker > summary { cursor:pointer; color:#e5d6c8; font-size:12px; padding:14px 0; }
.xfg-post-picker > summary .icon { float:right; margin-top:2px; }
.xfg-post-destinations { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; padding-bottom:18px; }
.xfg-post-destinations a { border:1px solid #dfc2a535; background:#ffedbb06; border-radius:8px; padding:13px; font-size:13px; line-height:1.5; display:flex; justify-content:space-between; gap:8px; align-items:center; }
.xfg-post-destinations a:hover { background:#ffedbb10; }
.xfg-home-columns :is(a,button,input):focus-visible,.xfg-post-picker :is(a,summary):focus-visible { outline:2px solid #ffcb6b; outline-offset:3px; }
.xfg-home-columns :is(a,button):active { box-shadow:inset 0 2px 8px #0005; }
@media (max-width:960px) {
 .xfg-home-columns { grid-template-columns:minmax(0,1fr) 245px; gap:18px; }
 .xfg-home-heading h2 { font-size:18px; }
 .xfg-discussion-row { padding:18px 15px; }
}
@media (max-width:800px) {
 .xfg-home-columns { grid-template-columns:minmax(0,1fr); gap:25px; }
 .xfg-channel-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .xfg-channel-link + .xfg-channel-link { border-top:0; }
}
@media (max-width:700px) {
 .section-index .wrap { min-width:0; }
 .section-index .site-description { grid-template-columns:60px minmax(0,1fr); padding:23px 20px; gap:12px 16px; min-height:0; }
 .section-index .site_logo { width:60px; height:60px; }
 .section-index .site-description .logo { grid-row:1; align-self:start; }
 .section-index .site-description h1 { align-self:start; margin-top:4px; font-size:clamp(19px,5.5vw,30px); line-height:1.08; }
 .section-index .site-description > p:not(.skiplink) { grid-column:1/-1; font-size:12px; margin:0; }
 .xfg-home-welcome { margin:15px 0 22px; padding:20px; gap:18px; }
 .xfg-home-welcome h2 { font-size:23px; }
 .xfg-game-filters a { box-sizing:border-box; }
 #phpbb .xfg-game-filters a { min-height:44px; padding:8px 11px; }
 #phpbb .xfg-discussion-search input { font-size:16px; min-height:44px; box-sizing:border-box; }
 .xfg-search-submit { min-height:44px; }
 .xfg-post-destinations { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .xfg-home-heading { gap:10px; }
 .xfg-mark-read { max-width:105px; }
}
@media (max-width:520px) {
 .xfg-home-welcome { display:block; }
 .xfg-home-welcome .xfg-cta { box-sizing:border-box; width:100%; margin-top:16px; }
 .xfg-discussion-row { grid-template-columns:32px minmax(0,1fr); gap:10px; padding:18px 13px; }
 .xfg-author-initials { width:32px; height:32px; border-radius:10px; font-size:11px; }
 .xfg-discussion-content h3 { font-size:14px; }
 .xfg-topic-open { display:none; }
 .xfg-topic-meta,.xfg-topic-activity { column-gap:9px; }
 .xfg-channel-list,.xfg-post-destinations { grid-template-columns:minmax(0,1fr); }
 .xfg-channel-link + .xfg-channel-link { border-top:1px solid #cfb39a17; }
 .xfg-home-heading h2 { font-size:17px; }
 .xfg-post-picker { padding:0 14px; }
}

/* Clear obsidian glass, with one shared material throughout the forum. */
#phpbb .site-description { grid-template-columns:100px minmax(0,1fr); column-gap:25px; min-height:174px; padding:27px 32px; }
#phpbb .site_logo { width:100px; height:100px; }
#phpbb .site-description h1 { font-size:34px; }
#phpbb .site-description > p:not(.skiplink) { margin-top:10px; }
#phpbb .site-description h1,
#phpbb .site-description > p:not(.skiplink) { text-shadow:none; }
#phpbb .site-description > p:not(.skiplink) { color:#ddd4cc; }
#phpbb .wrap { min-width:0; }
#phpbb :is(.panel,.post,.rules,.phpbb_alert) { color:#eee7df; }
#phpbb :is(.panel,.post,.forabg,.forumbg):has(.dropdown-visible) { position:relative; z-index:3; }
#phpbb .postbody .content { font-size:15px; line-height:1.7; }
#phpbb :is(.panel,.stat-block) p { color:#d0c6be; }
#phpbb .stat-block p { font-size:12px; }
#phpbb .post .author { font-size:12px; line-height:1.6; }
#phpbb :is(.forumtitle,.topictitle) { font-size:18px; }
#phpbb .site-description > p:not(.skiplink),
#phpbb .xfg-channel-link small { font-size:12px; }
#phpbb .xfg-discussion-content h3 { font-size:17px; line-height:1.5; }
#phpbb :is(.xfg-topic-meta,.xfg-topic-activity,.xfg-feed-footer) { font-size:12px; color:#d0c6be; }
#phpbb .xfg-topic-activity a { color:#d0c6be; }
#phpbb .xfg-channel-link strong { font-size:14px; }
#phpbb .xfg-channel-icon { font-size:19px; line-height:1.25; color:#edc476; }
#phpbb .xfg-channel-link { grid-template-columns:25px minmax(0,1fr) 10px; gap:10px; }
#phpbb .xfg-channel-link:hover .xfg-channel-icon { color:#fff0c9; }
#phpbb :is(input.inputbox,textarea.inputbox,select) { background:#090b10dc!important; border-color:#bfa47d52; color:#f7f1e9; }
#phpbb :is(input.inputbox,textarea.inputbox,select):focus { border-color:#f2c573; }
#phpbb select :is(option,optgroup) { background:#101115; color:#f7f1e9; }
#phpbb :is(.button,.button1,.button2,.button3,.xfg-cta,.xfg-search-submit) { text-shadow:none; }
#phpbb .xfg-game-filters a.is-selected { background-color:#52351660!important; border-color:#e6b86f9c!important; }
#phpbb .xfg-discussion-row { grid-template-columns:44px minmax(0,1fr) 24px; gap:14px; }
.xfg-author-avatar { display:block; width:44px; height:44px; border-radius:12px; overflow:hidden; border:1px solid #e6c59835; box-sizing:border-box; background:#1a1516; }
.xfg-author-avatar img { display:block; width:100%!important; height:100%!important; max-width:100%; object-fit:cover; border-radius:inherit; }
.xfg-author-avatar .xfg-author-initials { width:100%; height:100%; border:0; box-sizing:border-box; border-radius:inherit; font-size:14px; }
.xfg-author-avatar.has-avatar .xfg-author-initials { display:none; }
.xfg-author-avatar.avatar-unavailable .xfg-author-initials { display:grid; }
.xfg-author-avatar.avatar-unavailable img { display:none; }
.xfg-media-preview { position:relative; display:flex; align-items:center; justify-content:center; gap:16px; max-width:360px; min-height:94px; box-sizing:border-box; overflow:hidden; margin-top:15px; border:1px solid #c6ab753f; border-radius:12px; background:linear-gradient(125deg,#a52c2618,#c6ab7506),#090a0dde; }
.xfg-media-preview.has-thumbnail { display:block; aspect-ratio:16/9; }
.xfg-media-preview img { display:block; width:100%; height:100%; object-fit:cover; }
.xfg-media-preview[data-media-kind="tiktok"] img { object-position:center 18%; }
.xfg-media-preview > .xfg-media-symbol { display:grid; place-items:center; flex:none; width:40px; height:40px; border-radius:50%; border:1px solid #f6d18b70; background:#07080cbf; color:#fff0c9; font-size:16px; }
.xfg-media-preview.has-thumbnail > .xfg-media-symbol { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); box-shadow:0 4px 16px #0005; }
.xfg-media-caption { display:flex; flex-direction:column; gap:4px; color:#f6e5c9; font-size:13px; line-height:1.45; padding:12px 0; }
.xfg-media-caption small { color:#c5b9aa; font-size:11px; }
.xfg-media-preview.has-thumbnail .xfg-media-caption { position:absolute; left:0; right:0; bottom:0; padding:20px 13px 11px; background:linear-gradient(transparent,#000d); color:white; }
.xfg-media-preview.has-thumbnail .xfg-media-caption small { color:#e7ddd4; }
.xfg-media-preview:hover { border-color:#f1c7759c; }
.xfg-media-preview.thumbnail-unavailable { display:flex; aspect-ratio:auto; min-height:94px; }
.xfg-media-preview.thumbnail-unavailable img { display:none; }
.xfg-media-preview.thumbnail-unavailable > .xfg-media-symbol { position:static; transform:none; }
.xfg-media-preview.thumbnail-unavailable .xfg-media-caption { position:static; padding:12px 0; background:none; }
#phpbb .xfg-post-clip { display:block; width:min(100%,480px); box-sizing:border-box; overflow:hidden; margin:12px 0; border:1px solid #c6ab753f; border-radius:12px; background:#090a0d; text-decoration:none; }
#phpbb .xfg-post-clip__image { display:block; width:100%; max-width:100%; height:auto; max-height:440px; object-fit:cover; object-position:center 18%; }
#phpbb .xfg-post-clip__caption { display:flex; align-items:center; gap:10px; padding:13px 16px; color:#f6e5c9; font-size:14px; line-height:1.5; }
#phpbb .xfg-post-clip:hover { border-color:#f1c7759c; }
#phpbb .postbody .content iframe { max-width:100%; }

/* The reflection is a masked one-pixel outline, so it never washes over text. */
.xfg-reflective { position:relative; }
.xfg-edge-reflection { display:none; }
@supports ((mask-composite:exclude) or (-webkit-mask-composite:xor)) {
 .xfg-edge-reflection { display:block; position:absolute; inset:-1px; padding:1px; border-radius:inherit; pointer-events:none; opacity:0; background:linear-gradient(115deg,transparent 34%,#c5a96b70 44%,#fff3ceb3 49%,#c5a96b55 55%,transparent 66%) 180% 0/260% 100% no-repeat; -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); -webkit-mask-composite:xor; mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); mask-composite:exclude; }
 @media (hover:hover) and (pointer:fine) {
  .xfg-reflective:hover > .xfg-edge-reflection { animation:xfg-edge-pass 850ms ease-out 1 both; }
 }
 .xfg-reflective:focus-visible > .xfg-edge-reflection { animation:xfg-edge-pass 850ms ease-out 1 both; }
}
@keyframes xfg-edge-pass {
 0% { background-position:180% 0; opacity:0; }
 15% { opacity:.75; }
 80% { opacity:.65; }
 100% { background-position:-80% 0; opacity:0; }
}
#phpbb .xfg-press-feedback { animation:xfg-button-press 220ms ease-out 1; }
@keyframes xfg-button-press {
 0% { transform:scale(1); }
 38% { transform:scale(.97); box-shadow:inset 0 2px 8px #0007,0 0 0 1px #ffdc9159; }
 100% { transform:scale(1); }
}
@media (max-width:700px) {
 #phpbb::before { background-position:24% top; }
 #phpbb .site-description { grid-template-columns:60px minmax(0,1fr); padding:23px 20px; gap:12px 16px; min-height:0; }
 #phpbb .site_logo { width:60px; height:60px; }
 #phpbb .site-description .logo { grid-row:1; align-self:start; }
 #phpbb .site-description h1 { align-self:start; margin-top:4px; font-size:clamp(19px,5.5vw,30px); line-height:1.08; }
 #phpbb .site-description > p:not(.skiplink) { grid-column:1/-1; margin:0; }
 #phpbb .postbody .content { font-size:14px; }
 #phpbb .xfg-discussion-content h3 { font-size:16px; }
 #phpbb .xfg-discussion-row { grid-template-columns:36px minmax(0,1fr); gap:11px; }
 .xfg-topic-open { display:none; }
 .xfg-author-avatar { width:36px; height:36px; border-radius:10px; }
 .xfg-author-avatar .xfg-author-initials { font-size:12px; }
 .xfg-media-preview { max-width:100%; }
}
@media (max-width:380px) {
 .xfg-media-preview { gap:10px; padding:0 10px; }
 .xfg-media-preview.has-thumbnail { padding:0; }
 .xfg-media-caption { font-size:12px; }
 .xfg-media-preview > .xfg-media-symbol { width:32px; height:32px; }
}
@media (prefers-reduced-motion:reduce) {
 #phpbb .xfg-edge-reflection { display:none; animation:none; }
 #phpbb .xfg-press-feedback { animation:none; transform:none; }
}

/* Branded fallback only; members' chosen avatars retain their own presentation. */
#phpbb img.xfg-default-avatar {
 box-sizing:border-box;
 object-fit:contain;
 padding:6px;
 border:1px solid #dfb86b66;
 border-radius:14px;
 background:radial-gradient(ellipse at 20% 10%,#83202b30,transparent 70%),#0a0c10;
}
#phpbb .xfg-author-avatar img.xfg-default-avatar {
 padding:3px;
 border:0;
 border-radius:inherit;
 object-fit:contain;
}
#phpbb .header-avatar img.xfg-default-avatar { padding:1px; border-radius:4px; }
@media (max-width:700px) {
 #phpbb .postprofile img.xfg-default-avatar { padding:3px; border-radius:8px; }
}

/* XFG avatar choices keep phpBB's native radio fields and gallery flow. */
#phpbb .xfg-avatar-category { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:0 0 10px; }
#phpbb .xfg-avatar-category label { margin:0; }
#phpbb .gallery.xfg-avatar-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; max-width:650px; clear:both; padding:8px 0; }
#phpbb .xfg-avatar-gallery .xfg-avatar-choice { position:relative; display:block; float:none; width:auto; min-width:0; margin:0; padding:0; border:0; cursor:pointer; text-align:center; }
#phpbb .xfg-avatar-choice input[type="radio"] { position:absolute; top:10px; right:10px; z-index:1; width:16px; height:16px; margin:0; accent-color:#f2c573; cursor:pointer; }
#phpbb .xfg-avatar-tile { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; box-sizing:border-box; min-height:154px; height:100%; padding:18px 12px 12px; border:1px solid #c8ab7d42; border-radius:12px; background:#080a0e66; color:#e9ddd0; }
#phpbb .xfg-avatar-tile img { display:block; width:90px; height:90px; max-width:100%; object-fit:contain; border-radius:8px; }
#phpbb .xfg-avatar-name { display:block; font-size:13px; font-weight:600; line-height:1.4; overflow-wrap:anywhere; }
#phpbb .xfg-avatar-choice:hover .xfg-avatar-tile { border-color:#e9c58399; }
#phpbb .xfg-avatar-choice input:checked + .xfg-avatar-tile { border-color:#f2c573; background:#ad7b2020; box-shadow:inset 0 0 0 1px #f2c57370; color:#fff0cf; }
#phpbb .xfg-avatar-choice:focus-within .xfg-avatar-tile { outline:2px solid #f2c573; outline-offset:3px; }
@media (max-width:700px) {
	#phpbb .gallery.xfg-avatar-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
}
