Template:Main Page/shared/styles-themefix.css
Template page
More actions
/* 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 ) );
}
}