MediaWiki:Common.css
From Dreams Knowledge Platform
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/* CSS placed here will be applied to all skins */
.navbar-brand img {
padding-top: 10px;
height: 60px;
}
.firstHeading {
color: rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1)) !important;
}
.external.text {
color: rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1)) !important;
}
.grid-container {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
padding: 20px;
}
.square {
padding: 30px;
border-radius: 12px;
text-align: center;
font-family: Arial, sans-serif;
font-weight: bold;
color: white;
display: flex;
align-items: center;
justify-content: center;
min-height: 150px;
}
.blue { background-color: #2D8CFF; }
.red { background-color: #FF4757; }
.green { background-color: #2ED573; }
.yellow { background-color: #FFD32A; }
.orange { background-color: #fee4cb; }
.hue1 { background-color: #5c4ce4; }
.hue2 { background-color: #8068ff; }
.hue3 { background-color: #a386ff; }
.hue4 { background-color: #c6a4ff; }
.hue5 { background-color: #e9c4ff; }
/* ── Main Page ── */
.__NOTOC__ + * { margin-top: 0; }
.main-hero {
display: flex;
align-items: center;
gap: 2em;
padding: 2em 0 2.5em;
border-bottom: 1px solid #e1e4ff;
margin-bottom: 2em;
flex-wrap: wrap;
}
.main-hero__text { flex: 1; min-width: 280px; }
.main-hero__tag {
font-size: 0.75em;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
color: #5c4ce4;
margin-bottom: 0.6em;
}
.main-hero__title {
font-size: 1.7em;
font-weight: 800;
line-height: 1.25;
color: #1a1a2e;
margin: 0 0 0.6em;
border: none;
padding: 0;
}
.main-hero__lead {
font-size: 1.05em;
color: #444;
line-height: 1.6;
max-width: 580px;
margin-bottom: 1.2em;
text-align: justify;
}
.main-hero__actions {
display: flex;
gap: 0.8em;
flex-wrap: wrap;
}
.main-hero__logo {
flex-shrink: 0;
}
.main-hero__logo figure,
.main-hero__logo .thumb,
.main-hero__logo .thumbinner {
border: none !important;
background: none !important;
padding: 0 !important;
margin: 0 !important;
}
.main-hero__logo .thumbcaption,
.main-hero__logo .magnify { display: none !important; }
.main-hero__btn a,
a.main-hero__btn {
display: inline-block;
background: #5c4ce4;
color: #fff !important;
padding: 0.5em 1.2em;
border-radius: 5px;
font-weight: 600;
font-size: 0.95em;
text-decoration: none !important;
}
.main-hero__btn--outline a {
background: transparent;
color: #5c4ce4 !important;
border: 2px solid #5c4ce4;
}
.main-hero__btn a:hover { opacity: 0.85; }
.main-hero__actions {
display: flex;
gap: 0.8em;
flex-wrap: wrap;
align-items: stretch;
}
.main-hero__btn a {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
box-sizing: border-box;
}
.main-section {
margin-bottom: 2.5em;
}
.main-intro {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 2em;
margin-top: 1em;
}
.main-intro__col {
font-size: 1.02em;
line-height: 1.65;
color: #333;
text-align: justify;
}
.main-labs {
display: flex;
flex-wrap: wrap;
gap: 0.6em;
margin-top: 1em;
justify-content: center;
}
.main-lab-btn a {
display: inline-block;
background: #f3f1ff;
border: 1px solid #c6a4ff;
color: #5c4ce4 !important;
padding: 0.4em 1em;
border-radius: 20px;
font-weight: 600;
font-size: 0.95em;
text-decoration: none !important;
}
.main-lab-btn a:hover {
background: #5c4ce4;
color: #fff !important;
border-color: #5c4ce4;
}
.main-connect {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 1em;
margin-top: 1em;
}
.main-connect__item {
background: #f3f1ff;
border: 1px solid #e1e4ff;
border-left: 4px solid #5c4ce4;
padding: 0.8em 1em;
font-size: 0.97em;
}
.main-connect__item a {
color: #5c4ce4 !important;
font-weight: 600;
text-decoration: none !important;
}
@media (max-width: 700px) {
.main-hero { flex-direction: column; }
.main-intro { grid-template-columns: 1fr; }
}
/* DREAMers team layout */
.dreamer-section {
margin: 22px 0 30px;
}
.dreamer-section__head {
margin: 4px 0 14px;
border-left: 4px solid rgb(92,76,228);
padding-left: 10px;
}
.dreamer-section__title {
font-size: 1.25em;
font-weight: 700;
}
.dreamer-section__subtitle {
color: #54595d;
margin-top: 0;
}
.dreamer-section__subtitle:empty {
display: none;
}
.dreamers-grid {
display: grid;
grid-template-columns: repeat(auto-fill, 260px);
gap: 20px;
justify-content: center;
}
.dreamers-grid > p {
display: none;
}
.dreamer-card {
width: 260px;
box-sizing: border-box;
display: flex;
flex-direction: column;
background: #fff;
border: 1px solid #e1e4ff;
box-shadow: 0 6px 16px rgba(92,76,228,0.08);
}
.dreamer-card__imgwrap {
width: 100%;
height: 250px;
overflow: hidden;
background: #f3f1ff;
}
.dreamer-card__imgwrap pre {
margin: 0;
padding: 0;
border: none;
background: none;
overflow: hidden;
white-space: normal;
width: 100%;
height: 100%;
}
.dreamer-card__imgwrap a {
display: block;
width: 100%;
height: 100%;
}
.dreamer-card__img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center top;
display: block;
border-radius: 0;
}
.dreamer-card__body {
padding: 10px 14px 12px;
}
.dreamer-card__name {
line-height: 1.2;
color: #1f2328;
}
.dreamer-card__role {
color: #54595d;
margin-top: 2px;
}
.dreamer-card__meta {
color: #72777d;
margin-top: 6px;
font-size: 0.95em;
}
.dreamer-card__imgwrap figure,
.dreamer-card__imgwrap .thumb,
.dreamer-card__imgwrap .thumbinner {
width: 100% !important;
height: 100% !important;
margin: 0 !important;
padding: 0 !important;
border: none !important;
background: none !important;
display: block !important;
}
.dreamer-card__imgwrap .thumbcaption,
.dreamer-card__imgwrap .magnify {
display: none !important;
}
.dreamer-card__meta:empty { display: none; }
/* ── Event detail page ── */
.event-detail { margin-top: 8px; }
.event-detail__meta {
display: flex;
flex-wrap: wrap;
gap: 0 32px;
padding: 14px 20px;
padding-bottom: 0px;
background: #f3f1ff;
border-left: 4px solid #5c4ce4;
margin-bottom: 24px;
}
.event-detail__meta-item { display: flex; gap: 8px; align-items: baseline; }
.event-detail__meta-label {
font-weight: 700;
color: #5c4ce4;
text-transform: uppercase;
font-size: 0.78em;
letter-spacing: 0.05em;
}
.event-detail__description {
font-size: 1.05em;
line-height: 1.65;
margin-bottom: 28px;
max-width: 780px;
}
/* ── Event image gallery ── */
.event-gallery {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 16px;
margin-top: 8px;
}
.event-gallery > p { display: none; }
.event-gallery__item {
overflow: hidden;
background: #f3f1ff;
border: 1px solid #e1e4ff;
box-shadow: 0 4px 12px rgba(92,76,228,0.08);
line-height: 0;
}
.event-gallery__item a,
.event-gallery__item span,
.event-gallery__item .thumb,
.event-gallery__item .thumbinner {
display: block !important;
width: 100% !important;
max-width: none !important;
}
.event-gallery__item img {
display: block !important;
width: 100% !important;
height: 260px;
object-fit: cover;
object-position: center;
}
.event-gallery__item .thumbcaption,
.event-gallery__item .magnify { display: none; }
/* Strip thumb borders inside event gallery */
.event-gallery .thumb {
border: none !important;
background: none !important;
padding: 0 !important;
}
.event-gallery .thumbinner {
border: none !important;
background: none !important;
padding: 0 !important;
width: 100% !important;
}
.event-gallery .thumbimage {
border: none !important;
}
.event-gallery .thumbcaption,
.event-gallery .magnify {
display: none !important;
}
/* ── Event Card ── */
.event-card {
border: 1px solid #dde;
border-radius: 8px;
overflow: hidden;
background: #f9f9fc;
width: 300px;
display: flex;
flex-direction: column;
box-sizing: border-box;
}
.event-card-image {
width: 100%;
height: 160px;
overflow: hidden;
background: #eef;
display: flex;
align-items: center;
justify-content: center;
}
/* Strip MediaWiki thumb wrapper inside event cards */
.event-card-image figure,
.event-card-image figure.mw-default-size,
.event-card-image .thumb,
.event-card-image .thumbinner {
width: 100% !important;
height: 100% !important;
margin: 0 !important;
padding: 0 !important;
border: none !important;
background: none !important;
display: block !important;
}
.event-card-image .thumbcaption,
.event-card-image .magnify {
display: none !important;
}
.event-card-image img {
width: 100% !important;
height: 100% !important;
object-fit: cover !important;
object-position: center !important;
display: block !important;
}
.event-card-image--placeholder {
background: linear-gradient(135deg, #e8ecf8 0%, #d0d8f0 100%);
position: relative;
}
.event-card-image--placeholder::after {
content: "";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 2.5em;
height: 2.5em;
opacity: 0.35;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23334' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
background-size: contain;
background-repeat: no-repeat;
background-position: center;
}
.event-card-body {
padding: 1em 1.2em;
display: flex;
flex-direction: column;
gap: 0.4em;
flex: 1;
}
.event-card-tag {
font-size: 0.78em;
color: #fff;
background: #4a5dcc;
border-radius: 3px;
padding: 0.15em 0.55em;
display: inline-block;
align-self: flex-start;
width: fit-content;
}
.event-card-title {
font-weight: bold;
font-size: 1em;
line-height: 1.4;
}
.event-card-location {
font-size: 0.82em;
color: #555;
}
.event-card-desc {
font-size: 0.85em;
color: #444;
line-height: 1.4;
}
.event-card-readmore {
font-size: 0.82em;
font-weight: 600;
margin-top: 0.4em;
}
/* ── Publication detail page ── */
.publication-detail__meta {
display: flex;
flex-wrap: wrap;
gap: 0 32px;
padding: 14px 20px;
background: #f3f1ff;
border-left: 4px solid #5c4ce4;
margin-bottom: 24px;
font-size: 0.97em;
}
.publication-detail__meta-item { display: flex; gap: 8px; align-items: baseline; }
.publication-detail__meta-label {
font-weight: 700;
color: #5c4ce4;
text-transform: uppercase;
font-size: 0.78em;
letter-spacing: 0.05em;
white-space: nowrap;
}
.publication-detail__description {
font-size: 1.05em;
line-height: 1.65;
margin-bottom: 28px;
max-width: 780px;
}
.publication-detail__section { margin-top: 24px; }
.publication-detail__section-title {
font-weight: 700;
color: #5c4ce4;
text-transform: uppercase;
font-size: 0.78em;
letter-spacing: 0.05em;
margin-bottom: 10px;
}
.publication-authors {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.publication-author {
background: #f3f1ff;
border: 1px solid #c6a4ff;
padding: 5px 12px;
font-size: 0.92em;
line-height: 1.4;
color: #1f2328;
}
/* ── Living Lab detail page ── */
.living-lab-detail__meta {
display: flex;
flex-wrap: wrap;
gap: 0 32px;
padding: 14px 20px;
background: #f3f1ff;
border-left: 4px solid #5c4ce4;
margin-bottom: 24px;
font-size: 0.97em;
}
.living-lab-detail__meta-item { display: flex; gap: 8px; align-items: baseline; }
.living-lab-detail__meta-label {
font-weight: 700;
color: #5c4ce4;
text-transform: uppercase;
font-size: 0.78em;
letter-spacing: 0.05em;
white-space: nowrap;
}
.living-lab-detail__section { margin-bottom: 28px; }
.living-lab-detail__section-title {
font-weight: 700;
color: #5c4ce4;
text-transform: uppercase;
font-size: 0.78em;
letter-spacing: 0.05em;
margin-bottom: 8px;
border-bottom: 1px solid #e1e4ff;
padding-bottom: 4px;
}
.living-lab-detail__text {
font-size: 1.02em;
line-height: 1.65;
max-width: 820px;
}
.living-lab-detail__map { max-width: 820px; }
.living-lab-detail__map .maps-map { width: 100% !important; }
/* --- Brand tokens --- */
:root {
--dreams-primary: #5c4ce4;
--dreams-tint: #f3f1ff;
--dreams-border: #cac4f8;
--dreams-dark: #3d30c4;
--dreams-text-on: #ffffff;
--dreams-small: 0.85em;
}
/* --- Page wrapper --- */
.sump-step { max-width: 60rem; }
/* --- Phase / step header bar --- */
.sump-step__head {
display: flex;
align-items: center;
gap: .75rem;
padding: .75rem 0 1rem;
border-bottom: 1px solid #e0e0e0;
margin-bottom: 1rem;
}
.sump-step__phase-tag {
display: inline-block;
font-size: var(--dreams-small);
font-weight: 700;
letter-spacing: .05em;
text-transform: uppercase;
padding: .2rem .7rem;
border-radius: 1rem;
color: var(--dreams-text-on);
background: var(--dreams-primary);
}
.sump-step__phase-label {
font-size: var(--dreams-small);
color: #555;
}
.sump-step__counter {
margin-left: auto;
font-size: var(--dreams-small);
color: #888;
}
/* --- Section headings --- */
.sump-step h2 {
border-left: 3px solid var(--dreams-primary);
padding-left: .75rem;
margin-top: 2rem;
}
/* --- Intro text block --- */
.sump-intro {
line-height: 1.75;
padding-bottom: 1.5rem;
border-bottom: 1px solid #e8e8e8;
margin-top: 0;
margin-bottom: 1.75rem;
}
.sump-intro > p:first-child { margin-top: 0; }
.sump-intro > p:last-child { margin-bottom: 0; }
/* --- Four-body card grid --- */
.sump-bodies-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: 10px;
margin: 1.25rem 0 1.75rem;
}
.sump-body-card {
background: #fafafa;
border: 1px solid #e8e8e8;
border-radius: 8px;
padding: .9rem 1rem;
}
.sump-body-card__label {
font-size: var(--dreams-small);
font-weight: 700;
color: var(--dreams-primary);
margin-bottom: .35rem;
}
.sump-body-card__desc {
font-size: var(--dreams-small);
line-height: 1.55;
color: #444;
}
/* --- Callout --- */
.dreams-callout {
font-size: var(--dreams-small);
border-left: 3px solid var(--dreams-primary);
background: var(--dreams-tint);
padding: .75rem 1rem;
border-radius: 0 6px 6px 0;
margin: 1.25rem 0;
line-height: 1.65;
color: #333;
}
.dreams-callout__label {
font-size: var(--dreams-small);
font-weight: 700;
letter-spacing: .06em;
text-transform: uppercase;
color: var(--dreams-primary);
margin-bottom: .35rem;
}
/* --- Outskirts challenge box --- */
.sump-outskirts-box {
border: 1px solid var(--dreams-border);
border-radius: 8px;
overflow: hidden;
margin: 1.5rem 0;
}
.sump-outskirts-box__head {
background: var(--dreams-primary);
color: var(--dreams-text-on);
padding: .6rem 1rem;
font-size: var(--dreams-small);
font-weight: 700;
letter-spacing: .02em;
}
.sump-outskirts-box__body {
background: var(--dreams-tint);
padding: .9rem 1.1rem;
line-height: 1.65;
color: #333;
}
The problem is clear. The current .sump-seq-item uses a three-column grid (28px 11rem 1fr) which works fine on desktop but on narrow mobile screens the fixed 11rem label column squeezes the description column too tight, causing it to wrap badly.
The fix: switch to a two-row stacked layout on mobile using a media query, keeping the three-column layout only for wider screens.
Here's the replacement CSS block for .sump-sequence-wrap and its children — paste this into MediaWiki:Common.css, replacing the existing sequence section:
css
/* --- Setup sequence --- */
.sump-sequence-wrap {
margin: 1rem 0 1.5rem;
counter-reset: seq;
}
.sump-seq-item {
counter-increment: seq;
display: grid;
grid-template-columns: 28px 1fr;
grid-template-rows: auto auto;
gap: 0 12px;
align-items: start;
margin-bottom: 14px;
line-height: 1.6;
}
.sump-seq-item::before {
content: counter(seq);
width: 24px;
height: 24px;
background: var(--dreams-primary);
color: var(--dreams-text-on);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: var(--dreams-small);
font-weight: 700;
flex-shrink: 0;
margin-top: 3px;
grid-row: 1 / 3;
}
.sump-seq-label {
font-weight: 700;
color: var(--dreams-primary);
grid-column: 2;
grid-row: 1;
}
.sump-seq-desc {
color: #333;
grid-column: 2;
grid-row: 2;
font-size: var(--dreams-small);
}
@media (min-width: 560px) {
.sump-seq-item {
grid-template-columns: 28px 10rem 1fr;
grid-template-rows: auto;
align-items: baseline;
}
.sump-seq-item::before {
grid-row: 1;
}
.sump-seq-label {
grid-column: 2;
grid-row: 1;
}
.sump-seq-desc {
grid-column: 3;
grid-row: 1;
font-size: inherit;
}
}
/* --- Go deeper / handoff block --- */
.dreams-handoff {
border: 1px solid var(--dreams-border);
background: var(--dreams-tint);
padding: .85rem 1.1rem;
border-radius: 8px;
margin: 1.5rem 0;
line-height: 1.6;
}
.dreams-handoff__label {
font-size: var(--dreams-small);
font-weight: 700;
letter-spacing: .06em;
text-transform: uppercase;
color: var(--dreams-primary);
margin-bottom: .5rem;
}
/* --- Sources footer --- */
.sump-sources {
font-size: var(--dreams-small);
color: #666;
border-top: 1px solid #e8e8e8;
margin-top: 2rem;
padding-top: .85rem;
line-height: 1.6;
}
/* --- Prev / next navigation bar --- */
.sump-step__nav {
display: flex;
align-items: center;
justify-content: space-between;
gap: .5rem;
flex-wrap: wrap;
font-size: var(--dreams-small);
}
.sump-step__nav--top {
margin: .5rem 0 1.75rem;
padding-bottom: 1rem;
border-bottom: 1px solid #e0e0e0;
}
.sump-step__nav--bottom {
margin-top: 1rem;
padding-top: 1rem;
border-top: 1px solid #e0e0e0;
}
.sump-step__nav a { color: var(--dreams-primary); }
.sump-step__nav a:hover {
color: var(--dreams-dark);
text-decoration: underline;
}
.sump-step__nav-home a {
font-weight: 700;
color: #333 !important;
border: 1px solid #ccc;
padding: .2rem .75rem;
border-radius: 6px;
text-decoration: none !important;
}
.sump-step__nav-home a:hover { background: var(--dreams-tint); }
.sump-step__nav-next {
margin-left: auto;
text-align: right;
}