Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Template:Main Page/shared/styles-themefix.css

Template page
/* Main page shared styles
   Attribution: some structural and motion ideas in this stylesheet were adapted from
   Citizen-based homepage implementations on starcitizen.tools and prismparty.net,
   then rewritten and adjusted for Echoes of the Flesh. */

/* Main page header */
.home-header {
	position: relative;
	overflow: hidden;
	padding: 3.75rem 1.5rem 3.1rem;
	margin-bottom: 0.9rem;
	line-height: var( --line-height-xx-small );
	text-align: center;
}

/* Attribution: the layered hero treatment below borrows the general "artwork under
   atmospheric overlay" idea seen on several Citizen-theme homepages, rebuilt here
   around the local Divosi banner asset. */
.home-header::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 1.25rem;
	background:
		linear-gradient( 180deg, rgba( 6, 7, 10, 0.12 ), rgba( 6, 7, 10, 0.48 ) ),
		url( "/images/b/be/DivosiBanner.png" ) center 32% / cover no-repeat;
	opacity: 0.5;
	filter: saturate( 0.96 ) contrast( 1.08 );
	transform: scale( 1.02 );
	pointer-events: none;
}

.home-header::after {
	content: "";
	position: absolute;
	inset: 0;
	border: 1px solid rgba( 128, 42, 48, 0.22 );
	border-radius: 1.25rem;
	background:
		radial-gradient( circle at top, rgba( 128, 18, 28, 0.24 ), transparent 55% ),
		linear-gradient( 180deg, rgba( 18, 7, 10, 0.72 ), rgba( 10, 12, 18, 0.78 ) );
	box-shadow: inset 0 1px 0 rgba( 255, 255, 255, 0.03 );
	pointer-events: none;
}

.home-header > * {
	position: relative;
	z-index: 1;
}

.home-header__pretitle {
	margin-bottom: var( --space-xxs );
	color: var( --color-subtle );
	font-size: var( --font-size-small );
	letter-spacing: 0.05em;
}

.home-header__title {
	--display-font-size: min( calc( 2.5rem + 3.9vw ), 4.5rem );
	margin: 0;
	font-size: var( --display-font-size );
	text-transform: uppercase;
	line-height: 0.9;
	font-weight: var( --font-weight-semi-bold );
	text-shadow: 0 10px 30px rgba( 0, 0, 0, 0.32 );
}

.home-header__subtitle {
	margin-top: 0.35rem;
	color: var( --color-subtle );
	font-size: var( --font-size-small );
}

.home-header__status {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1.05rem;
	padding: 0.55rem 0.95rem;
	border: 1px solid rgba( 137, 42, 48, 0.24 );
	border-radius: 1rem;
	background: rgba( 18, 13, 18, 0.78 );
	backdrop-filter: blur( 8px );
}

.home-header__status p {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.65rem;
	align-items: center;
	justify-content: center;
	margin: 0;
}

.home-header__statusLabel {
	color: #d79599;
	font-size: var( --font-size-x-small );
	letter-spacing: 0.04em;
	font-weight: var( --font-weight-medium );
}

.home-header__statusText {
	color: var( --color-base );
	font-size: var( --font-size-small );
	opacity: 0.92;
}

.home-header__search {
	position: relative;
	isolation: isolate;
	padding: var( --space-md );
	margin-top: 1.2rem;
	margin-left: auto;
	margin-right: auto;
	max-width: 600px;
	border: 1px solid var( --border-color-base );
	border-radius: var( --border-radius-pill );
	background-color: rgba( 17, 19, 25, 0.82 );
	cursor: pointer;
	font-size: var( --font-size-small );
	font-weight: var( --font-weight-medium );
	text-align: center;
	backdrop-filter: blur( 10px );
	transition: background 180ms ease, border-color 180ms ease;
}

/* Attribution: the animated hover-glow treatment here was inspired by the
   Citizen homepage search affordance on starcitizen.tools, with a custom red palette. */
.home-header__search::before {
	content: "";
	position: absolute;
	inset: -1px;
	z-index: -1;
	border-radius: inherit;
	background: linear-gradient(
		120deg,
		#16090a 0%,
		#3a1113 20%,
		#6a1719 38%,
		#9a2020 50%,
		#6a1719 62%,
		#3a1113 80%,
		#16090a 100%
	);
	background-size: 200% 200%;
	filter: blur( 8px );
	opacity: 0;
	transition: opacity 200ms ease, filter 200ms ease;
}

.home-header__search .desktoponly {
	margin-left: var( --space-xs );
}

.home-header__search:hover {
	background: rgba( 12, 13, 17, 0.92 );
}

.home-header__search:hover::before {
	opacity: 0.9;
	filter: blur( 10px );
	animation: home-search-red-glow 4.5s linear infinite;
}

@keyframes home-search-red-glow {
	0% {
		background-position: 0% 50%;
	}
	100% {
		background-position: 200% 50%;
	}
}

.home-header__searchIcon img {
	margin-right: var( --space-md );
	opacity: var( --opacity-icon-base );
}

.home-header__search .keyboard-key {
	display: inline;
	padding-top: 0.1em;
	padding-bottom: 0.1em;
}

html.skin-citizen-dark .home-header__searchIcon img {
	filter: invert( 1 );
}

@media ( hover: none ) {
	.home-header__search .desktoponly {
		display: none;
	}
}

/* Main page 2-column layout */
.main-home-grid {
	display: grid;
	grid-template-areas:
		"article"
		"widgets";
	gap: 0.625rem;
	margin-top: 0.1rem;
}

@media ( min-width: 760px ) {
	.main-home-grid {
		grid-template-columns: minmax( 0, 1.45fr ) minmax( 320px, 0.95fr );
		grid-template-areas: "article widgets";
		align-items: start;
	}
}

.article {
	grid-area: article;
	min-width: 0;
}

.widgets {
	grid-area: widgets;
	min-width: 0;
}

.widgets > .home-card + .home-card {
	margin-top: 0.625rem;
}

.split-left {
	grid-area: split-left;
}

.split-right {
	grid-area: split-right;
}

.sub-home-grid {
	display: grid;
	margin-top: 0.625rem;
	gap: 0.625rem;
	grid-template-areas:
		"split-left"
		"split-right";
}

@media ( min-width: 700px ) {
	.sub-home-grid {
		grid-template-columns: 1fr 1fr;
		grid-template-areas: "split-left split-right";
	}
}

.home-grid {
	display: grid;
	grid: auto-flow dense / repeat( auto-fit, minmax( 9.375rem, 1fr ) );
	grid-auto-rows: minmax( 3rem, auto );
	grid-gap: var( --space-xs );
}

.home-grid--col2 {
	grid-template-columns: 1fr 1fr;
}

.home-grid a.external {
	background-image: none;
}

.home-badge {
	display: flex;
	gap: var( --space-xxs );
	font-size: var( --font-size-x-small );
	padding: var( --space-xxs ) var( --space-xs );
	background: var( --color-surface-2 );
	color: var( --color-base );
	border-radius: var( --border-radius-base );
	font-weight: var( --font-weight-normal );
	letter-spacing: 0.025em;
	line-height: var( --line-height-xxx-small );
}

.home-card,
.home-meta__item {
	box-shadow: 0 12px 32px rgba( 5, 5, 8, 0.22 );
}

.home-card {
	position: relative;
	padding: var( --space-md );
	border: 1px solid var( --border-color-base );
	background: var( --color-surface-1 );
	border-radius: var( --border-radius-medium );
	font-size: var( --font-size-small );
}

.home-card table.timeline {
	margin-top: var( --space-xs );
}

.home-card--col2 {
	grid-column: span 2;
}

.home-card--row3 {
	grid-row: span 3;
}

.home-card--row4 {
	grid-row: span 4;
}

.home-card--row8 {
	grid-row: span 8 / auto;
}

.home-card__badge,
.home-card__label {
	color: var( --color-subtle );
	font-size: var( --font-size-x-small );
	letter-spacing: 0.05em;
}

.home-card__badge {
	padding: var( --space-xxs ) var( --space-xs );
	border-radius: var( --border-radius-base );
	background: var( --color-surface-2 );
}

.home-card__header {
	color: var( --color-emphasized );
	font-size: 1rem;
	font-weight: var( --font-weight-semi-bold );
	line-height: var( --line-height-xxx-small );
}

.home-card__header a {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.home-card__header a:after {
	content: "▶";
	font-size: var( --font-size-x-small );
}

.home-card__background {
	position: absolute;
	inset: 0;
}

.home-card__background:after {
	position: absolute;
	pointer-events: none;
	inset: 0;
	display: block;
	background: linear-gradient( to right, #000, transparent );
	content: "";
	transition: transform 250ms ease;
}

.home-card__background picture,
.home-card__background img {
	width: 100%;
	height: 100%;
}

.home-card__background img {
	object-fit: cover;
	object-position: center;
}

.home-card__foreground {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	padding: var( --space-md );
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: var( --space-xxs );
	color: #fff;
	line-height: var( --line-height-xxx-small );
	pointer-events: none;
}

.home-card__foreground .home-card__badge {
	position: absolute;
	top: 0;
	right: 0;
	border-top-left-radius: 0;
	border-bottom-right-radius: 0;
}

.home-card__foreground .home-card__header {
	color: #fff;
}

.home-card__foreground .home-card__label {
	color: #bababa;
}

.home-card p {
	margin-top: var( --space-xs );
	font-size: var( --font-size-small );
}

.home-card.home-card--button {
	overflow: hidden;
	padding: 0;
	border: 0;
}

.home-card--button a {
	display: flex;
	height: 100%;
	justify-content: center;
	align-items: center;
	padding: 0 var( --space-md );
	background: transparent;
	color: #fff;
	font-weight: var( --font-weight-medium );
}

.home-card--button .home-card__background a {
	padding: 0;
}

.home-card--button img {
	transition: transform 250ms ease;
}

.home-card--button:hover img {
	transform: scale( 1.1 );
}

.home-link {
	display: grid;
	margin-top: var( --space-xs );
	font-size: var( --font-size-small );
	font-weight: var( --font-weight-medium );
	grid-gap: var( --space-xs );
	text-align: center;
}

.home-link__button {
	display: flex;
}

.home-link__button a {
	flex-grow: 1;
	padding: var( --space-xs );
	border: 1px solid var( --border-color-base );
	background: var( --color-surface-2 );
	border-radius: var( --border-radius-medium );
	color: var( --color-emphasized ) !important;
	line-height: var( --line-height-xxx-small );
	text-decoration: none !important;
}

.home-link__button a:hover {
	background: var( --color-surface-2--hover );
}

.home-link__button a:active {
	background: var( --color-surface-2--active );
}

#home-content {
	margin-top: 0;
}

.home-card .template-statsbar {
	margin: 0;
}

/* Discord widget polish + spacing */
#home-discordwidget {
	padding-top: 1rem;
}

.discord-widget-wrap {
	display: flex;
	justify-content: center;
	margin-top: 0.95rem;
	margin-bottom: 1rem;
	padding-inline: 0.05rem;
}

#home-discordwidget #discord-widget {
	width: 100%;
	max-width: none;
}

#home-discordwidget iframe.responsive-iframe {
	width: 100%;
	border-radius: 8px;
	overflow: hidden;
	display: block;
	min-height: 500px;
	background: transparent;
}

#home-discordwidget .home-card__label {
	margin-bottom: 1rem !important;
	padding-left: 0.05rem;
}

#home-discordwidget .home-link__button-discord,
#home-discordwidget .home-link__button {
	margin-top: 0.95rem !important;
}

.home-link__button-discord {
	margin-top: 0.75rem;
}

#home-discordwidget a.external.text::after {
	display: none;
}

/* Attribution: the footer utility rail borrows the "compact maintenance links"
   idea from Citizen-theme main pages like starcitizen.tools, but uses original copy and styling. */
.home-meta {
	display: grid;
	gap: 0.75rem;
	margin-top: 1.25rem;
}

@media ( min-width: 860px ) {
	.home-meta {
		grid-template-columns: 1.2fr 0.8fr 0.9fr;
	}
}

.home-meta__item {
	padding: 0.95rem 1rem;
	border: 1px solid var( --border-color-base );
	border-radius: var( --border-radius-medium );
	background: linear-gradient( 180deg, rgba( 19, 20, 27, 0.94 ), rgba( 11, 12, 17, 0.98 ) );
}

.home-meta__label {
	margin-bottom: 0.35rem;
	color: #c48a8f;
	font-size: var( --font-size-x-small );
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.home-meta__text,
.home-meta__actions {
	font-size: var( --font-size-small );
	line-height: 1.5;
}

.home-meta__actions p {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
}

.home-meta__actions a {
	display: inline-flex;
	padding: 0.45rem 0.75rem;
	border: 1px solid rgba( 137, 42, 48, 0.25 );
	border-radius: 999px;
	background: rgba( 54, 15, 21, 0.18 );
	text-decoration: none;
	background-image: none;
}

.home-meta__actions a:hover {
	background: rgba( 82, 22, 28, 0.28 );
}

.home-meta__actions a.external::after {
	display: none;
}

/* Citizen theme bridge
   Keep the custom hero treatment, but let Citizen's own surface and text
   tokens drive light, dark, and pure-black presentation. */

.home-header,
.home-meta,
#home-content {
	--home-panel-shadow: 0 12px 28px rgba( 20, 23, 28, 0.08 );
	--home-status-bg: rgba( 255, 255, 255, 0.74 );
	--home-status-border: rgba( 140, 52, 64, 0.16 );
	--home-status-label: #93444d;
	--home-status-text: var( --color-emphasized );
	--home-search-bg: rgba( 255, 255, 255, 0.84 );
	--home-search-hover-bg: rgba( 255, 255, 255, 0.96 );
	--home-search-border: rgba( 140, 52, 64, 0.12 );
	--home-search-shadow: 0 18px 40px rgba( 34, 24, 28, 0.12 );
	--home-search-icon-filter: none;
	--home-meta-bg: var( --color-surface-1 );
	--home-meta-border: rgba( 140, 52, 64, 0.12 );
	--home-meta-label: #93444d;
	--home-meta-text: var( --color-base );
	--home-action-bg: rgba( 140, 52, 64, 0.08 );
	--home-action-border: rgba( 140, 52, 64, 0.14 );
	--home-action-hover: rgba( 140, 52, 64, 0.14 );
}

.home-card,
.home-meta__item {
	box-shadow: var( --home-panel-shadow );
}

.home-header::after {
	border-color: rgba( 140, 52, 64, 0.2 );
	background:
		radial-gradient( circle at top, rgba( 128, 18, 28, 0.24 ), transparent 55% ),
		linear-gradient( 180deg, rgba( 22, 10, 15, 0.56 ), rgba( 10, 12, 18, 0.82 ) );
}

.home-header__pretitle {
	color: #f1c4a6;
}

.home-header__title {
	color: #fff;
	text-shadow: 0 12px 34px rgba( 0, 0, 0, 0.48 );
}

.home-header__subtitle {
	color: rgba( 245, 232, 236, 0.88 );
}

.home-header__status {
	border-color: var( --home-status-border );
	background: var( --home-status-bg );
	box-shadow: var( --home-search-shadow );
}

.home-header__statusLabel {
	color: var( --home-status-label );
}

.home-header__statusText {
	color: var( --home-status-text );
}

.home-header__search {
	border-color: var( --home-search-border );
	background-color: var( --home-search-bg );
	box-shadow: var( --home-search-shadow );
	color: var( --color-emphasized );
}

.home-header__search:hover {
	background: var( --home-search-hover-bg );
}

.home-header__searchText,
.home-header__search .desktoponly {
	color: inherit;
}

.home-header__searchIcon img {
	filter: var( --home-search-icon-filter );
	opacity: 0.92;
}

.home-meta__item {
	border-color: var( --home-meta-border );
	background: var( --home-meta-bg );
	color: var( --home-meta-text );
}

.home-meta__label {
	color: var( --home-meta-label );
}

.home-meta__text,
.home-meta__actions {
	color: var( --home-meta-text );
}

.home-meta__actions a {
	border-color: var( --home-action-border );
	background: var( --home-action-bg );
	color: var( --color-emphasized );
}

.home-meta__actions a:hover {
	background: var( --home-action-hover );
}

html.skin-theme-clientpref-night .home-header,
html.skin-theme-clientpref-night .home-meta,
html.skin-theme-clientpref-night #home-content,
html.skin-citizen-dark .home-header,
html.skin-citizen-dark .home-meta,
html.skin-citizen-dark #home-content {
	--home-panel-shadow: 0 12px 32px rgba( 5, 5, 8, 0.22 );
	--home-status-bg: rgba( 36, 15, 20, 0.8 );
	--home-status-border: rgba( 201, 114, 123, 0.25 );
	--home-status-label: #f1b8bd;
	--home-status-text: #fff;
	--home-search-bg: rgba( 14, 16, 22, 0.88 );
	--home-search-hover-bg: rgba( 9, 10, 14, 0.94 );
	--home-search-border: rgba( 255, 255, 255, 0.1 );
	--home-search-shadow: 0 18px 40px rgba( 5, 7, 10, 0.22 );
	--home-search-icon-filter: invert( 1 );
	--home-meta-bg: linear-gradient( 180deg, rgba( 19, 20, 27, 0.94 ), rgba( 11, 12, 17, 0.98 ) );
	--home-meta-border: rgba( 201, 114, 123, 0.14 );
	--home-meta-label: #d6a0a4;
	--home-meta-text: #eef2f6;
	--home-action-bg: rgba( 88, 27, 34, 0.22 );
	--home-action-border: rgba( 201, 114, 123, 0.26 );
	--home-action-hover: rgba( 118, 35, 45, 0.34 );
}

html.skin-theme-clientpref-night.citizen-feature-pure-black-clientpref-1 .home-header,
html.skin-theme-clientpref-night.citizen-feature-pure-black-clientpref-1 .home-meta,
html.skin-theme-clientpref-night.citizen-feature-pure-black-clientpref-1 #home-content,
html.skin-citizen-dark.citizen-feature-pure-black-clientpref-1 .home-header,
html.skin-citizen-dark.citizen-feature-pure-black-clientpref-1 .home-meta,
html.skin-citizen-dark.citizen-feature-pure-black-clientpref-1 #home-content {
	--home-status-bg: rgba( 7, 7, 8, 0.84 );
	--home-search-bg: rgba( 6, 6, 7, 0.9 );
	--home-search-hover-bg: rgba( 2, 2, 2, 0.96 );
	--home-meta-bg: linear-gradient( 180deg, rgba( 10, 10, 10, 0.96 ), rgba( 0, 0, 0, 0.99 ) );
}

@media ( prefers-color-scheme: dark ) {
	html.skin-theme-clientpref-os .home-header,
	html.skin-theme-clientpref-os .home-meta,
	html.skin-theme-clientpref-os #home-content {
		--home-panel-shadow: 0 12px 32px rgba( 5, 5, 8, 0.22 );
		--home-status-bg: rgba( 36, 15, 20, 0.8 );
		--home-status-border: rgba( 201, 114, 123, 0.25 );
		--home-status-label: #f1b8bd;
		--home-status-text: #fff;
		--home-search-bg: rgba( 14, 16, 22, 0.88 );
		--home-search-hover-bg: rgba( 9, 10, 14, 0.94 );
		--home-search-border: rgba( 255, 255, 255, 0.1 );
		--home-search-shadow: 0 18px 40px rgba( 5, 7, 10, 0.22 );
		--home-search-icon-filter: invert( 1 );
		--home-meta-bg: linear-gradient( 180deg, rgba( 19, 20, 27, 0.94 ), rgba( 11, 12, 17, 0.98 ) );
		--home-meta-border: rgba( 201, 114, 123, 0.14 );
		--home-meta-label: #d6a0a4;
		--home-meta-text: #eef2f6;
		--home-action-bg: rgba( 88, 27, 34, 0.22 );
		--home-action-border: rgba( 201, 114, 123, 0.26 );
		--home-action-hover: rgba( 118, 35, 45, 0.34 );
	}

	html.skin-theme-clientpref-os.citizen-feature-pure-black-clientpref-1 .home-header,
	html.skin-theme-clientpref-os.citizen-feature-pure-black-clientpref-1 .home-meta,
	html.skin-theme-clientpref-os.citizen-feature-pure-black-clientpref-1 #home-content {
		--home-status-bg: rgba( 7, 7, 8, 0.84 );
		--home-search-bg: rgba( 6, 6, 7, 0.9 );
		--home-search-hover-bg: rgba( 2, 2, 2, 0.96 );
		--home-meta-bg: linear-gradient( 180deg, rgba( 10, 10, 10, 0.96 ), rgba( 0, 0, 0, 0.99 ) );
	}
}