@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.ttf’) format(‘truetype’);
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.ttf’) format(‘truetype’);
font-weight: 300;
font-style: italic;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.ttf’) format(‘truetype’);
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.ttf’) format(‘truetype’);
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.ttf’) format(‘truetype’);
font-weight: 500;
font-style: normal;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.ttf’) format(‘truetype’);
font-weight: 500;
font-style: italic;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.ttf’) format(‘truetype’);
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf’) format(‘truetype’);
font-weight: 600;
font-style: italic;
}Here is the rewritten text in fluent, natural English:
“`css
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.ttf’) format(‘truetype’);
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.ttf’) format(‘truetype’);
font-weight: 700;
font-style: italic;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.ttf’) format(‘truetype’);
font-weight: 900;
font-style: normal;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.ttf’) format(‘truetype’);
font-weight: 900;
font-style: italic;
}
@font-face {
font-family: ‘Guardian Titlepiece’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.ttf’) format(‘truetype’);
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Light.ttf’) format(‘truetype’);
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-LightItalic.ttf’) format(‘truetype’);
font-weight: 300;
font-style: italic;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Regular.ttf’) format(‘truetype’);
font-weight: 400;
font-style: normal;
}
“`Here is the rewritten text in fluent, natural English:
“`css
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-RegularItalic.ttf’) format(‘truetype’);
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Medium.ttf’) format(‘truetype’);
font-weight: 500;
font-style: normal;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-MediumItalic.ttf’) format(‘truetype’);
font-weight: 500;
font-style: italic;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Semibold.ttf’) format(‘truetype’);
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf’) format(‘truetype’);
font-weight: 600;
font-style: italic;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Bold.ttf’) format(‘truetype’);
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BoldItalic.ttf’) format(‘truetype’);
font-weight: 700;
font-style: italic;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.ttf’) format(‘truetype’);
font-weight: 900;
font-style: normal;
}
@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.ttf’) format(‘truetype’);
font-weight: 900;
font-style: italic;
}
“““css
@font-face {
font-family: Guardian Headline;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.ttf) format(“truetype”);
font-weight: 900;
font-style: italic;
}
@font-face {
font-family: Guardian Titlepiece;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.ttf) format(“truetype”);
font-weight: 700;
font-style: normal;
}
#article-body > div .content–interactive-grid,
.content–interactive > div .content–interactive-grid,
#comment-body .content–interactive-grid,
[data-gu-name=”body”] .content–interactive-grid,
#feature-body .content–interactive-grid {
grid-column-gap: 0px;
grid-template-columns: 100%;
grid-template-areas:
“media”
“title”
“headline”
“standfirst”
“lines”
“meta”
“body”;
}
@media (min-width: 30em) {
#article-body > div .content–interactive-grid figure.element–immersive figcaption,
.content–interactive > div .content–interactive-grid figure.element–immersive figcaption,
#comment-body .content–interactive-grid figure.element–immersive figcaption,
[data-gu-name=”body”] .content–interactive-grid figure.element–immersive figcaption,
#feature-body .content–interactive-grid figure.element–immersive figcaption {
padding: 0 20px;
max-width: 620px;
}
}
@media (min-width: 46.25em) {
#article-body > div .content–interactive-grid,
.content–interactive > div .content–interactive-grid,
#comment-body .content–interactive-grid,
[data-gu-name=”body”] .content–interactive-grid,
#feature-body .content–interactive-grid {
grid-template-columns: 100%;
grid-column-gap: 10px;
grid-template-areas:
“title”
“headline”
“standfirst”
“media”
“lines”
“meta”
“body”;
}
#article-body > div .content–interactive-grid #maincontent,
.content–interactive > div .content–interactive-grid #maincontent,
#comment-body .content–interactive-grid #maincontent,
[data-gu-name=”body”] .content–interactive-grid #maincontent,
#feature-body .content–interactive-grid #maincontent {
padding-right: 80px;
}
}
@media (min-width: 61.25em) {
#article-body > div .content–interactive-grid,
.content–interactive > div .content–interactive-grid,
#comment-body .content–interactive-grid,
[data-gu-name=”body”] .content–interactive-grid,
#feature-body .content–interactive-grid {
grid-template-columns: 620px 300px;
grid-template-areas:
“title right-column”
“headline right-column”
“standfirst right-column”
“media right-column”
“lines right-column”
“meta right-column”
“body right-column”
“. right-column”;
}
#article-body > div .content–interactive-grid #maincontent,
.content–interactive > div .content–interactive-grid #maincontent,
#comment-body .content–interactive-grid #maincontent,
[data-gu-name=”body”] .content–interactive-grid #maincontent,
#feature-body .content–interactive-grid #maincontent {
padding-right: unset;
}
}
@media (min-width: 71.25em) {
#article-body > div .content–interactive-grid,
.content–interactive > div .content–interactive-grid,
#comment-body .content–interactive-grid,
[data-gu-name=”body”] .content–interactive-grid,
#feature-body .content–interactive-grid {
grid-template-columns: 140px 1px 620px 300px;
grid-template-areas:
“title border headline right-column”
“. border standfirst right-column”
“. border media right-column”
“. border body right-column”
“. border . right-column”;
}
#article-body > div .content–interactive-grid .content__standfirst,
.content–interactive > div .content–interactive-grid .content__standfirst,
#comment-body .content–interactive-grid .content__standfirst,
[data-gu-name=”body”] .content–interactive-grid .content__standfirst,
#feature-body .content–interactive-grid .content__standfirst {
padding-bottom: 0;
}
#article-body > div .content–interactive-grid figure.element–immersive figcaption,
.content–interactive > div .content–interactive-grid figure.element–immersive figcaption,
#comment-body .cont
“`Here’s the rewritten version in fluent, natural English:
For interactive grid figures with immersive elements, the caption should have 4 pixels of padding at the top and none at the bottom. In the main article body, the lines and meta sections within an interactive grid should be placed in the grid area starting at row 2, column 1, and ending at row 5, column 2. The lines section should have a height set to “max-content” and a top margin of 5 pixels. The meta section should have a top margin of 18 pixels.
On screens wider than 81.25em (1300 pixels), the interactive grid should use a layout with columns of 219px, 1px, 620px, 80px, and 300px.
On iOS and Android devices, the standfirst text in the article header should use the Guardian Headline font family with a weight of 500. The article kicker section should be displayed as a block, and its first letter should be capitalized. The keyline-4 element should have a top padding of 12 pixels. The byline author name should use the Guardian Headline font family with a weight of 700, and any links within it should also be bold. For images in articles, the figure inner container should have its height set to “auto.” If an atom element is followed by a paragraph, that paragraph should have no top margin.
Finally, the Guardian Headline Full font is defined in two styles: light (weight 300) and light italic (weight 300), both using the same font files.I’m sorry, but the text you’ve provided appears to be CSS code for defining font faces, not a passage of written English that can be rewritten. Could you please provide the actual text you’d like me to rewrite in fluent, natural English?Here’s the rewritten text in fluent, natural English:
“`css
@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-Black.ttf) format(“truetype”);
font-weight: 900;
font-style: normal;
}
@font-face {
font-family: Guardian Headline Full;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/noalts-not-hinted/GHGuardianHeadline-BlackItalic.ttf) format(“truetype”);
font-weight: 900;
font-style: italic;
}
@font-face {
font-family: Guardian Titlepiece;
src: url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff2) format(“woff2”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.woff) format(“woff”),
url(https://assets.guim.co.uk/static/frontend/fonts/guardian-titlepiece/noalts-not-hinted/GTGuardianTitlepiece-Bold.ttf) format(“truetype”);
font-weight: 700;
font-style: normal;
}
@media (min-width: 71.25em) {
.content__main-column–interactive {
margin-left: 160px;
}
}
@media (min-width: 81.25em) {
.content__main-column–interactive {
margin-left: 240px;
}
}
.content__main-column–interactive .element-atom {
max-width: 620px;
}
@media (max-width: 46.24em) {
.content__main-column–interactive .element-atom {
max-width: 100%;
}
}
.content__main-column–interactive .element-showcase {
margin-left: 0;
}
@media (min-width: 46.25em) {
.content__main-column–interactive .element-showcase {
max-width: 620px;
}
}
@media (min-width: 71.25em) {
.content__main-column–interactive .element-showcase {
max-width: 860px;
}
}
.content__main-column–interactive .element-immersive {
max-width: 1100px;
}
@media (max-width: 46.24em) {
.content__main-column–interactive .element-immersive {
width: calc(100vw – var(–scrollbar-width, 0px));
position: relative;
left: 50%;
right: 50%;
margin-left: calc(-50vw + var(–half-scrollbar-width, 0px)) !important;
margin-right: calc(-50vw + var(–half-scrollbar-width, 0px)) !important;
}
}
@media (min-width: 46.25em) {
.content__main-column–interactive .element-immersive {
transform: translate(-20px);
width: calc(100% + 60px);
}
}
@media (max-width: 71.24em) {
.content__main-column–interactive .element-immersive {
margin-left: 0;
margin-right: 0;
}
}
@media (min-width: 71.25em) {
.content__main-column–interactive .element-immersive {
transform: translate(0);
width: auto;
}
}
@media (min-width: 81.25em) {
.content__main-column–interactive .element-immersive {
max-width: 1260px;
}
}
.content__main-column–interactive p,
.content__main-column–interactive ul {
max-width: 620px;
}
.content__main-column–interactive:before {
position: absolute;
top: 0;
height: calc(100% + 15px);
min-height: 100px;
content: “”;
}
@media (min-width: 71.25em) {
.content__main-column–interactive:before {
border-left: 1px solid #dcdcdc;
z-index: -1;
left: -10px;
}
}
@media (min-width: 81.25em) {
.content__main-column–interactive:before {
border-left: 1px solid #dcdcdc;
left: -11px;
}
}
.content__main-column–interactive .element-atom {
margin-top: 0;
margin-bottom: 0;
padding-bottom: 12px;
padding-top: 12px;
}
.content__main-column–interactive p + .element-atom {
padding-top: 0;
padding-bottom: 0;
margin-top: 12px;
margin-bottom: 12px;
}
.content__main-column–interactive .element-inline {
max-width: 620px;
}
@media (min-width: 61.25em) {
figure[data-spacefinder-role=”inline”].element {
max-width: 620px;
}
}
[data-gu-name=”media”]:has(figure.loop) figure.loop figcaption:not(.hidden) {
z-index: 6;
}
[data-gu-name=”media”]:has(figure.loop) figure.loop button[data-link-name*=”gu-video-loop”] {
width: 32px;
align-self: flex-end;
margin-bottom: 40px;
margin-right: 3px;
}
[data-gu-name=”media”]:has(figure.loop) #caption-button {
z-index: 100;
}
@media (min-width: 46.25em) {
[data-gu-name=”media”]:has(figure.cinemagraph) .cine {
/ styles here /
}
}
“`Here is the rewritten text in fluent, natural English:
The maximum height of div elements inside magraph is removed. For the body section, self-hosted video islands are set to full width, with a maximum width of 620 pixels. They are displayed as block elements with a 12-pixel margin on top and bottom. Inside these video islands, figure elements with the class “loop” and their videos are also full width, auto height, and centered with a max width of 620 pixels.
If a self-hosted video island contains a figure with the class “loop” and “element-video-immersive,” the island’s max width is removed, and its margin is set to 12 pixels on top and bottom. The figure and video inside also have no max width and no margin.
On screens wider than 71.25 em (about 1140 pixels), such immersive video islands expand to 1140 pixels wide and shift 180 pixels to the left. Their figure captions get a 20-pixel left margin. On screens wider than 81.25 em (about 1300 pixels), the islands expand to 1300 pixels wide and shift 260 pixels to the left.
Custom properties are defined for colors: dateline is a medium gray, header border is light gray, caption text is a lighter gray, caption background is a semi-transparent dark color, feature is red, and a new pillar color defaults to the primary pillar or feature. Subheading, pullquote text, and pullquote icon all use the secondary pillar color, while block quote text uses the article text color. Block quotes also use the secondary pillar fill.
In dark mode (when the user’s system preference is dark and no light color scheme is set), subheading, pullquote text, and pullquote icon switch to the dark mode pillar color. Block quotes also use the dark mode pillar fill.
Interactive content and element atoms have no padding. In various content areas, if an element atom or a horizontal rule (that is not the last one) is followed by a paragraph, that paragraph gets a 14-pixel top padding. The first letter of such paragraphs is styled with a drop cap.Here is the rewritten text in fluent, natural English:
For the first letter of the first paragraph after certain elements (like the first element of a specific type, a sign-in gate, or a horizontal rule), the styling is: font family is Guardian Headline or similar serif fonts, bold, 111px font size, 92px line height, floated left, uppercase, with 8px right margin, vertically aligned to the top of the text, and colored using a custom variable for drop caps.
For paragraphs that come right after a horizontal rule inside article or comment sections, there is no top padding.
Pull quotes inside these sections have a maximum width of 620px.
For showcase images in main content, feature, standard, or comment article containers, the caption is positioned statically (not absolutely) and takes up the full width, up to 620px.
On screens wider than 71.25em, those captions are positioned absolutely and have a max width of 140px. On screens wider than 81.25em, the max width increases to 220px.
Immersive elements take up the full viewport width minus the scrollbar width. On screens narrower than 71.24em, they have a max width of 978px, and their captions have 10px padding on each side. On screens between 30em and 71.24em, the caption padding increases to 20px. On screens between 46.25em and 61.24em, the max width is 738px. On screens narrower than 46.24em, the immersive element has a negative left margin of 10px (or 20px on screens wider than 30em) and no right margin.
For showcase images in the body or interactive content on screens wider than 71.25em, the left margin is -160px. On screens wider than 81.25em, it becomes -240px.
For furniture wrappers on screens wider than 61.25em, they are displayed as a grid with a 20px column gap, no row gap, and a template that starts with a title and a headline star.The layout uses a grid with columns defined as: [title-start, headline-start, meta-start] repeat(5, 1fr) [title-end, headline-end, meta-end, standfirst-start] repeat(5, 1fr) [portrait-end]. The rows are: [title-start, portrait-start] 0.25fr [title-end, headline-start] 1fr [headline-end, standfirst-start] 0.75fr [standfirst-end, meta-start] auto [meta-end, portrait-end].
In the furniture wrapper, the first child of the headline section has a top border of 1px solid using the `–headerBorder` variable. The meta section is positioned relatively, with 2px padding on top and no right margin. The standfirst section’s content has a bottom margin of 4px. List items in the standfirst have a font size of 20px. Links in the standfirst have no bottom border, no background image, and are underlined with a 6px offset, using the `–headerBorder` color (default #dcdcdc). On hover, the underline color changes to `–new-pillar-colour`. The first paragraph in the standfirst has a top border of 1px solid `–headerBorder` and no bottom padding.
For screens wider than 61.25em and 71.25em, the first paragraph in the standfirst has no top border. At 61.25em and above, figures have a left margin of 0 and a negative left margin of 10px. Inline figures with `data-spacefinder-role=”inline”` have a max width of 630px.
At 71.25em and above, the grid columns change to: [title-start, headline-start, meta-start] repeat(2, 1fr) [meta-end, standfirst-start] repeat(5, 1fr) [title-end, headline-end, standfirst-end, portrait-start] repeat(7, 1fr) [portrait-end]. Rows become: [title-start, portrait-start] 80px [title-end, headline-start] auto [headline-end, standfirst-start, meta-start] auto [standfirst-end, meta-end, portrait-end]. The meta section has a pseudo-element with a 540px wide line at the top, colored `–headerBorder`. The standfirst paragraphs have no top border, and the standfirst section has a 1px vertical line on the left, also using `–headerBorder`.
At 81.25em and above, the grid columns are: [title-start, headline-start, meta-start] repeat(3, 1fr) [meta-end, standfirst-start] repeat(5, 1fr) [title-end, headline-end, standfirst-end, portrait-start] repeat(8, 1fr) [portrait-end]. Rows are: [title-start, portrait-start] 0.25fr [title-end, headline-start] 1fr [headline-end, standfirst-start, meta-start] 0.75fr [standfirst-end, meta-end, portrait-end]. The meta pseudo-element width increases to 620px, and the standfirst vertical line shifts slightly to the left by 0.5px.
In the article header, the labels section has 2px padding on top. The headline’s h1 has no additional styling specified.Here is the rewritten text in fluent, natural English:
h1 {
font-weight: 600;
max-width: 620px;
font-size: 32px;
}
@media (min-width: 71.25em) {
.furniture-wrapper #headline h1,
.furniture-wrapper [data-gu-name=headline] h1,
.furniture-wrapper .headline h1 {
max-width: 540px;
font-size: 50px;
}
}
@media (min-width: 46.25em) {
.furniture-wrapper .keyline-4,
.furniture-wrapper [data-gu-name=lines] {
margin-right: 0;
}
}
@media (min-width: 61.25em) {
.furniture-wrapper .keyline-4,
.furniture-wrapper [data-gu-name=lines] {
display: none;
}
}
.furniture-wrapper .keyline-4 svg,
.furniture-wrapper [data-gu-name=lines] svg {
stroke: var(–headerBorder);
}
@media (min-width: 46.25em) {
.furniture-wrapper #meta,
.furniture-wrapper [data-gu-name=meta] {
margin-right: 0;
}
}
.furniture-wrapper #meta .meta__social,
.furniture-wrapper #meta .meta__social ul li a span,
.furniture-wrapper #meta .meta__comment,
.furniture-wrapper [data-gu-name=meta] .meta__social,
.furniture-wrapper [data-gu-name=meta] .meta__social ul li a span,
.furniture-wrapper [data-gu-name=meta] .meta__comment {
border-color: var(–headerBorder);
}
.furniture-wrapper #meta .content__meta-container_dcr > div > gu-island,
.furniture-wrapper [data-gu-name=meta] .content__meta-container_dcr > div > gu-island {
display: none;
}
.furniture-wrapper .standfirst,
.furniture-wrapper #standfirst,
.furniture-wrapper [data-gu-name=standfirst] {
margin-left: -10px;
padding-left: 10px;
position: relative;
}
@media (min-width: 46.25em) {
.furniture-wrapper .standfirst,
.furniture-wrapper #standfirst,
.furniture-wrapper [data-gu-name=standfirst] {
padding-top: 2px;
}
}
.furniture-wrapper .standfirst p,
.furniture-wrapper #standfirst p,
.furniture-wrapper [data-gu-name=standfirst] p {
font-weight: 400;
font-size: 20px;
padding-bottom: 14px;
}
.furniture-wrapper #main-media,
.furniture-wrapper [data-gu-name=media] {
position: relative;
margin-top: 0;
margin-bottom: 2px;
grid-area: portrait;
}
.furniture-wrapper #main-media div div,
.furniture-wrapper [data-gu-name=media] div div {
width: 100%;
margin-inline: 0;
}
@media (min-width: 61.25em) {
.furniture-wrapper #main-media,
.furniture-wrapper [data-gu-name=media] {
margin-bottom: 0;
}
}
@media (max-width: 46.24em) {
.furniture-wrapper #main-media,
.furniture-wrapper [data-gu-name=media] {
width: calc(100vw – var(–scrollbar-width, 0px));
margin-left: -10px;
}
}
@media (max-width: 46.24em) and (min-width: 30em) {
.furniture-wrapper #main-media,
.furniture-wrapper [data-gu-name=media] {
margin-left: -20px;
}
}
.furniture-wrapper figcaption {
position: absolute;
bottom: 0;
padding: 4px 10px 12px;
background-color: var(–captionBackground);
color: var(–captionText);
max-width: unset;
width: 100%;
margin-bottom: 0;
min-height: 46px;
}
.furniture-wrapper figcaption span {
color: var(–headerBorder);
}
.furniture-wrapper figcaption span svg {
fill: var(–headerBorder);
}
.furniture-wrapper figcaption span:nth-of-type(1) {
display: none;
}
.furniture-wrapper figcaption span:nth-of-type(2) {
display: block;
max-width: 90%;
}
@media (min-width: 30em) {
.furniture-wrapper figcaption {
padding: 4px 20px 12px;
}
}
.furniture-wrapper figcaption.hidden {
opacity: 0;
}
.furniture-wrapper #caption-button {
display: block;
position: absolute;
bottom: 10px;
right: 8px;
z-index: 30;
background-color: var(–captionBackground);
border: none;
border-radius: 50%;
padding: 6px 5px 5px;
}
.furniture-wrapper #caption-button svg {
transform: scale(0.85);
}
@media (min-width: 30em) {
.furniture-wrapper #caption-button {
right: 10px;
}
}
@media (min-width: 71.25em) {
.content__main-column–interactive:before {
top: -12px !important;
height: calc(100% + 24px) !important;
}
}
.content__main-column–interactive h2 {
max-width: 620px;
}
:root:has(.ios, .android) {
–darkBackground: #1a1a1a;
–feature: #c70000;
–darkmodeFeature: #ff5943;
–new-pillar-colour: var(–primary-pillar, var(–feature));
}
@media (prefers-color-scheme: dark) {
:root:has(.ios, .android) {
–new-pillar-colour: var(–darkmode-pillar, var(–darkmodeFeature));
}
}
body.ios #feature-article-container .element-atom:first-of-type + p:first-of-type:first-letter,
body.ios #feature-article-container .element-atom:first-of-type + .sign-in-gate + p:first-of-type:first-letter,
body.ios #feature-article-container .element-atom:first-of-type + #sign-in-gate + p:first-of-type:first-letter,
body.ios #standard-article-container .element-atom:first-of-type + p:first-of-type:first-letterHere is the rewritten text in fluent, natural English:
On iOS and Android, the first letter of the first paragraph after the first element atom in article containers (feature, standard, and comment) is styled with the secondary pillar color, which defaults to black if not set.
The article header sections on both iOS and Android are hidden by setting their height to zero.
The furniture wrapper in all article containers has padding of 4px on top and bottom and 10px on the left and right. Inside it, the content labels use bold text in the Guardian Headline font family and are styled with the new pillar color, with each word starting with a capital letter.
The main headline (h1) inside the furniture wrapper is 32px, bold, has 12px of padding at the bottom, and is colored black (#121212).
Images inside the furniture wrapper are positioned relatively, with a 14px top margin and a left margin of -10px. Their width is set to the full viewport width minus the scrollbar width, and the height adjusts automatically. The inner figure container and the image itself are also styled accordingly.Here’s the rewritten version in fluent, natural English:
For iOS and Android devices, the image and link inside the furniture wrapper’s figure element should have a transparent background. Their width should fill the full viewport width (minus any scrollbar), and the height should be set to auto.
On iOS and Android, the standfirst section inside the furniture wrapper should have 4 pixels of padding on top and 24 pixels on the bottom, with a right margin of -10 pixels.
The paragraph text inside the standfirst should use the font family: Guardian Headline, Guardian Egyptian Web, Guardian Headline Full, Georgia, or serif.
Links inside the standfirst (including those in list items) should use the pillar colour, have no background image, and be underlined. The underline should be offset by 6 pixels, with the underline colour matching the header border (usually #dcdcdc). There should be no bottom border.
When hovering over these links, the same styles should apply.Here’s the rewritten version in fluent, natural English:
When you hover over links inside the standfirst of an article on Android, the underline color changes to match the pillar color. This applies to feature, standard, and comment articles.
On both iOS and Android, the meta section (which includes the byline and author info) in feature, standard, and comment articles has no margin. The byline text, author names, and any links within the byline all use the pillar color.
Also on both platforms, the meta__misc section has no padding, and any SVG icons inside it use the pillar color for their stroke.
Finally, on iOS, the caption button inside a showcase element in feature, standard, and comment articles is styled accordingly.On Android, the caption button inside the furniture wrapper for feature, standard, and comment articles is styled as a flex container. It has 5px padding, centered content both horizontally and vertically, and is 28px wide and 28px tall, positioned 14px from the right.
For both iOS and Android, the article body in feature, standard, and comment articles has 12px padding on the left and right.
On both platforms, images in the article body that are not thumbnails or immersive have no margin. Their width is calculated as the full viewport width minus 24px and the scrollbar width (if any), and their height is automatic. The captions for these images have no padding.
Immersive images in the article body on both platforms have a width equal to the full viewport width minus the scrollbar width.
For both iOS and Android, quoted blockquotes in the article body have a before pseudo-element that uses the new pillar color.
Links in the article body on both platforms use the primary pillar color. They have no background image, are underlined with a 6px offset, and the underline color matches the header border. On hover, the link style changes.On iOS and Android, when you hover over a link inside the article body (in feature, standard, or comment articles), the underline color changes to match the new pillar color.
In dark mode (when the device’s color scheme is set to dark), the following styles apply:
– The background of the furniture wrapper (the area around the article header) becomes a dark gray (#1a1a1a).
– The labels in the furniture wrapper use the new pillar color.
– The main headline (h1) in the furniture wrapper has no background and uses the header border color.
– The standfirst text (the introductory paragraph) also uses the header border color.
– Links in the standfirst and the author name in the byline use the new pillar color.
– Icons in the meta section (like share buttons) have a stroke that matches the new pillar color.Here’s the rewritten version in fluent, natural English:
“`css
ar(–new-pillar-colour)
}
/ iOS and Android: Caption color for showcase images in feature, standard, and comment articles /
body.ios #feature-article-container .furniture-wrapper figure.element-image.element–showcase figcaption,
body.ios #standard-article-container .furniture-wrapper figure.element-image.element–showcase figcaption,
body.ios #comment-article-container .furniture-wrapper figure.element-image.element–showcase figcaption,
body.android #feature-article-container .furniture-wrapper figure.element-image.element–showcase figcaption,
body.android #standard-article-container .furniture-wrapper figure.element-image.element–showcase figcaption,
body.android #comment-article-container .furniture-wrapper figure.element-image.element–showcase figcaption {
color: var(–dateline);
}
/ iOS and Android: Quote color in article body for feature, standard, and comment articles /
body.ios #feature-article-container .article__body .prose blockquote.quoted,
body.ios #standard-article-container .article__body .prose blockquote.quoted,
body.ios #comment-article-container .article__body .prose blockquote.quoted,
body.android #feature-article-container .article__body .prose blockquote.quoted,
body.android #standard-article-container .article__body .prose blockquote.quoted,
body.android #comment-article-container .article__body .prose blockquote.quoted {
color: var(–new-pillar-colour);
}
/ iOS and Android: Background color for article body sections in feature, standard, and comment articles /
body.ios #feature-article-container #article-body > div,
body.ios #feature-article-container .content–interactive > div,
body.ios #feature-article-container #feature-body,
body.ios #feature-article-container [data-gu-name=”body”],
body.ios #feature-article-container #comment-body,
body.ios #standard-article-container #article-body > div,
body.ios #standard-article-container .content–interactive > div,
body.ios #standard-article-container #feature-body,
body.ios #standard-article-container [data-gu-name=”body”],
body.ios #standard-article-container #comment-body,
body.ios #comment-article-container #article-body > div,
body.ios #comment-article-container .content–interactive > div,
body.ios #comment-article-container #feature-body,
body.ios #comment-article-container [data-gu-name=”body”],
body.ios #comment-article-container #comment-body,
body.android #feature-article-container #article-body > div,
body.android #feature-article-container .content–interactive > div,
body.android #feature-article-container #feature-body,
body.android #feature-article-container [data-gu-name=”body”],
body.android #feature-article-container #comment-body,
body.android #standard-article-container #article-body > div,
body.android #standard-article-container .content–interactive > div,
body.android #standard-article-container #feature-body,
body.android #standard-article-container [data-gu-name=”body”],
body.android #standard-article-container #comment-body,
body.android #comment-article-container #article-body > div,
body.android #comment-article-container .content–interactive > div,
body.android #comment-article-container #feature-body,
body.android #comment-article-container [data-gu-name=”body”],
body.android #comment-article-container #comment-body {
background-color: var(–darkBackground) !important;
}
/ iOS and Android: First letter styling for paragraphs after element atoms in feature articles /
body.ios #feature-article-container #article-body > div .element-atom + p:first-letter,
body.ios #feature-article-container #article-body > div .element-atom + .sign-in-gate + p:first-letter,
body.ios #feature-article-container #article-body > div .element-atom + #sign-in-gate + p:first-letter,
body.ios #feature-article-container .content–interactive > div .element-atom + p:first-letter,
body.ios #feature-article-container .content–interactive > div .element-atom + .sign-in-gate + p:first-letter,
body.ios #feature-article-container .content–interactive > div .element-atom + #sign-in-gate + p:first-letter,
body.ios #feature-article-container #feature-body .element-atom + p:first-letter,
body.ios #feature-article-container #feature-body .element-atom + .sign-in-gate + p:first-letter,
body.ios #feature-article-container #feature-body .element-atom + #sign-in-gate + p:first-letter,
body.ios #feature-article-container [data-gu-name=”body”] .element-atom + p:first-letter,
body.ios #feature-article-container [data-gu-name=”body”] .element-atom + .sign-in-gate + p:first-letter,
body.ios #feature-article-container [data-gu-name=”body”] .element-atom + #sign-in-gate + p:first-letter,
body.ios #feature-article-co
“`
I’ve kept the CSS structure intact while making the selectors easier to read by grouping them and adding comments. The meaning and specificity remain the same.Here is the rewritten text in fluent, natural English:
This is a long list of CSS selectors used to style the first letter of paragraphs that come right after certain elements, like “element-atom” or “sign-in-gate,” in different parts of a website. These selectors apply to various containers, such as comment bodies, article bodies, feature bodies, and interactive content areas. They are specifically written for iOS and Android devices, targeting different sections of the page like `#feature-article-container`, `#standard-article-container`, `#comment-article-container`, and others. The pattern repeats for each container and device type, ensuring the first letter of those paragraphs is styled consistently across the site.Here’s the rewritten version in fluent, natural English:
On Android, the first letter of certain paragraphs should use the new pillar color (white by default). This applies to paragraphs that come right after an element atom, whether or not there’s a sign-in gate in between. These rules cover feature articles, standard articles, and comment articles across different sections like the body, comment body, and interactive content areas.
For comment articles on both iOS and Android, the standfirst inside the furniture wrapper should have 24 pixels of padding at the top and no margin above it.
In prose sections, h2 headings should be 24 pixels in size.
On iOS, the caption button in feature, standard, and comment articles should have 6 pixels of top padding and 5 pixels of left/right padding, with no bottom padding.
On Android, the same caption button should have 4 pixels of top padding and 4 pixels of left/right padding, with no bottom padding.
When the device is in dark mode (and no light color scheme is set), the follow text should be a light gray (#dcdcdc), and the follow icon fill should use the dark mode pillar color.Here is the rewritten text in fluent, natural English:
The first text uses a light gray color (#dcdcdc) for certain elements. The standfirst text, link borders, and byline all use the dark mode pillar color. On iOS and Android devices, the labels, headline, and standfirst text inside article containers have a font weight of 500. The page background is set to a soft pink (#fff4f2) for weekend essays, and this color is also used for the article section and sub-meta backgrounds. The lines element is hidden. The furniture wrapper is positioned relatively. On screens wider than 81.25em, the wrapper uses a grid layout with specific row heights for the title, headline, standfirst, and meta sections. The article header and title area are 70px tall and positioned relatively. Inside the labels, a small book icon (70x70px) appears at the bottom right, sourced from a GIF. On larger screens, this icon grows to 110x110px. A horizontal line (1px thick, light gray) stretches across the bottom of the labels area, starting 10px from the left. On medium screens, it shifts to 20px from the left and becomes 738px wide. On larger screens, this line disappears. The header height increases to 80px on screens wider than 71.25em, and to 125px on screens wider than 81.25em. The headline area has a slight negative top margin on the largest screens. Inside the headline, there is no bottom padding. The portrait main media headline wrapper fills its container and is positioned relatively, with overflow hidden.Here’s the rewritten text in fluent, natural English:
The headline section has hidden padding at the bottom. In the furniture wrapper, the headline titles and links inside the portrait main media wrapper don’t have a maximum width. When you hover over these titles or links, the underline becomes thicker (2px) and moves slightly further away from the text (6px offset).
The headline titles, links, and byline text in the portrait main media wrapper all use a line height of 115%, a font weight of 500, and a font size of 36px. On screens wider than 71.25em (about 1140px), the font size increases to 50px.
The standfirst section is positioned relatively and has 4px of padding at the top. On screens wider than 61.25em (about 980px), the top padding is removed. On screens wider than 71.25em, it gets 2px of top padding.
In the meta section, the branding island is displayed as a block element.
The main media section is also positioned relatively. On screens wider than 61.25em, it’s placed in the portrait grid area. The direct child div inside the main media is positioned relatively. Any div followed by a span is displayed as a block.
Figures inside the main media take up the full height and have a left margin of 10px. The images and captions inside these figures have a width equal to the full viewport width minus 40px and the scrollbar width. They also have automatic height, a 10px left margin, and 10px of padding at the top and bottom. The captions have a bottom margin.Here is the rewritten text in fluent, natural English:
Bottom: 10px; padding: 10px.
For the main media figure inside the furniture wrapper, a pseudo-element is added before it. This element displays a background image from a specific URL. The image is set to cover the container, centered, and not repeated. It is positioned absolutely at the top, 10px from the left, and inherits the height of the parent.
For screens wider than 46.25em (about 740px), the main media figure has no left margin. The image inside it is 670px wide, with auto height, a 5px left margin, and 15px top and bottom padding with 10px side padding. The pseudo-element is 700px wide and shifted 10px to the left. The caption is 650px wide, with a 15px left margin and bottom margin, and 15px top and bottom padding with 10px side padding.
For screens wider than 61.25em (about 980px), the pseudo-element is 470px wide. The image and caption are both 450px wide with no left margin. The image has 10px top and bottom padding with no side padding. The caption has a 10px bottom margin.
For screens wider than 71.25em (about 1140px), the pseudo-element is 550px wide. The image is 520px wide, with a 5px left margin and 10px top and bottom padding with 5px side padding. The caption is 510px wide, with a 10px left margin and bottom margin.
For screens wider than 81.25em (about 1300px), the pseudo-element is 630px wide. The image is 600px wide, with 15px top and bottom padding and no side padding. The caption is 600px wide, with a 5px left margin and 15px bottom margin.
The caption button is positioned 15px from the right and 20px from the bottom. For screens wider than 46.25em, it is 45px from the right and 30px from the bottom. For screens wider than 61.25em, it returns to 15px from the right and 20px from the bottom. For screens wider than 71.25em, it is 20px from the right. For screens wider than 81.25em, it is 30px from the bottom.
If there is no media, a div is displayed as a flex container, centered both horizontally and vertically, taking full width. The text inside it is 24px, with a font weight of 500, line height of 115%, and uses the byline anchor color. It is also bold and underlined, displayed as a block.
For screens wider than 71.25em, the main content column for interactive pages has no left margin, and its pseudo-element is hidden.
In the main content column for interactive pages, any supporting aside element that contains a blockquote has a background color set to a variable (defaulting to #fff4f2).
The first letter of the first paragraph in the main content column for interactive pages has a font weight of 300.
The heading level 2 (h2) in the main content column for interactive pages…The first letter of paragraphs following elements like `r+p`, `.content__main-column–interactive .progress-bar-wrapper+p`, and `.content__main-column–interactive p.drop-cap` uses the font `Guardian Headline`, `Guardian Egyptian Web`, `Guardian Headline Full`, `Georgia`, or `serif`. It has a font weight of 300, a size of 111px, and a line height of 92px. The text is uppercase, floats left, has an 8px right margin, and is vertically aligned to the text top. It uses `box-sizing: border-box` and its color is set by `–drop-cap`, which falls back to `–new-pillar-colour`.
For `.content__main-column–interactive h2`, the color is `#8d2700`, font size is 28px, font style is normal, font weight is 300, line height is normal, and it has an 8px bottom margin. On screens wider than 71.25em, the font size increases to 32px. If the `h2` contains a `` element, its font weight becomes 500.
The `.content__main-column–interactive figure` that contains an “ has a background color set by `–weekend-essay-bg`, which defaults to `#fff4f2`. On screens wider than 71.25em, the `figcaption` inside a `figure.element-showcase.element–showcase` is positioned absolutely.
For apps and iOS/Android devices, the `gu-island[name=FollowWrapper]` inside `.meta__byline` or `[data-component=meta-byline]` is displayed as a block with a 10px top margin. The `span` inside it has a font size of 14px.
On apps and iOS/Android, the `div`, `figure`, and `picture` elements inside `#main-media` or `[data-gu-name=media]` have a width set to `fit-content`.
In dark mode (when the user’s system prefers a dark color scheme), the body background for apps and iOS/Android becomes `#1a1a1a`, and `–weekend-essay-bg` also becomes `#1a1a1a`. The `:after` pseudo-elements for `.furniture-wrapper .article-header` and `.furniture-wrapper [data-gu-name=title] .content__labels` use a background image from a specific URL. Additionally, the `svg path` inside `gu-island[name=FollowWrapper]` within `.furniture-wrapper .meta__byline` or `[data-component=meta-byline]` is also affected.On Android, in the `.furniture-wrapper` section, when `[data-component=meta-byline]` contains `gu-island[name=FollowWrapper]`, the SVG paths will have a fill color set to `var(–byline-anchor, #ffffff)` and it will be marked as important.
For apps (both iOS and Android), when the rendering target is apps, the `.furniture-wrapper` elements `#main-media figure:before` and `[data-gu-name=media] figure:before` will use a background image from this URL: `https://interactive.guim.co.uk/atoms/2025/04/2025-weekend-essay-test/assets/v/1782414113/frame-white.png`, and it will also be marked as important.
For the body of iOS and Android pages, the background color is set to white. In these cases, the `.content__labels` and `h1.headline` inside `.furniture-wrapper` for feature, standard, and comment article containers will have a font weight of 500.
When the system is in light mode, if the page contains an iOS or Android body, the background color of the HTML element will be `var(–weekend-essay-bg, #fff4f2)`.
For pages with iOS or Android bodies, the opinion primary color is set to `#c74600`, and the byline anchor uses that same color. The primary pillar also uses the opinion primary color.
In light mode, the background color for iOS and Android bodies is `var(–weekend-essay-bg, #fff4f2)`. In dark mode, the weekend essay background becomes `#1a1a1a`, and the opinion primary color changes to `#ff7f0f`. Also in dark mode, for opinion pillar articles that are not media type on iOS, the article body and tags will have no background color set.
For iOS and Android, the feature, standard, and comment article containers will have a background color of `var(–weekend-essay-bg, #fff4f2)`.
On screens wider than 61.25em, the `.furniture-wrapper` inside these containers will use a grid layout with a 20px column gap and no row gap. The grid will have 10 columns: the first 5 columns are for title, headline, meta, and standfirst, and the next 5 columns are for the portrait. The rows are set up so that the title and portrait start together, taking up 0.25fr, then the headline takes 1fr, the standfirst takes 1.25fr, and the meta area takes auto height, ending with the portrait.
Finally, the `.title-and-gif-wrapper` inside the `.furniture-wrapper` for these containers on iOS and Android will follow the same layout rules.Here’s the rewritten version in fluent, natural English:
The layout uses flexbox with items arranged in a row, spaced evenly, and positioned relative to the container. On iOS and Android devices, the labels inside the title-and-gif section of article containers (feature, standard, and comment) are styled with a font size of 17px, normal style, bold weight, and 115% line height. Any links within these labels use the new pillar color (defaulting to #c74600) and are not transformed to uppercase.
The GIF container and its images in the same section are set to 70px by 70px. However, when the class “book-gif-white” is applied, both the container and the image are hidden. In dark mode (prefers-color-scheme: dark), the “book-gif” class is used instead.On iOS and Android, the following elements are hidden:
– `.book-gif` containers and images inside `.gif-container` within `.title-and-gif-wrapper` in feature, standard, and comment article containers.
Instead, the white versions (`.book-gif-white`) of these same elements are shown as blocks.
After each `.title-and-gif-wrapper` in these article containers, a 1-pixel tall, full-width line is added at the bottom, positioned 10 pixels from the left, with a light gray color (`#dcdcdc`).
On screens wider than 61.25em (about 980px), the `.title-and-gif-wrapper` is placed in the `title` area of the grid layout. The bottom line remains in place.Here’s the rewritten CSS in fluent, natural English:
For the wrapper’s title-and-gif-wrapper section, and on Android devices within the comment-article-container’s furniture-wrapper, the width is set to 50vw.
When the system uses dark mode, on both iOS and Android devices, the background color of the title-and-gif-wrapper inside the furniture-wrapper changes to #606060. This applies to feature, standard, and comment article containers.
On screens wider than 61.25em, the portrait-mainmedia__headline-wrapper inside the furniture-wrapper is placed in the headline grid area. This works for both iOS and Android across all article types.
For the headline, byline, and byline links inside the furniture-wrapper on both iOS and Android, the font size is 36px, the style is normal, the weight is 500, and the line height is 115%. This applies to feature, standard, and comment article containers.
The same font settings apply to the byline, byline text, and byline links within the meta__byline section of the furniture-wrapper on both platforms.The byline and its links inside the meta section of the furniture wrapper should use the pillar colour (defaulting to #c70000) on Android devices for standard and comment article containers.
In dark mode, iOS and Android devices should force the same colour (defaulting to #c74600) for the byline and its links in feature, standard, and comment article containers.
On both iOS and Android, the avatar inside the byline should be hidden for feature, standard, and comment articles.
The main headline (h1) in the furniture wrapper should have no bottom margin or padding on both iOS and Android for all article types.
The byline text should be italicised on both platforms, but the author name within it should remain normal (not italic).
Finally, the main media element should not be wrapped in any extra container on either platform for feature, standard, and comment articles.Here’s the rewritten version in fluent, natural English:
For the main media element, set the height to auto, the aspect ratio to 4:5, and the background color to transparent. This applies to both Android and iOS devices.
On iOS and Android, within the feature, standard, and comment article containers, the figure element inside the main media should have a height of 100% and no left margin. The inner part of the figure should be positioned relative, with top and left set to 0. The inner element should have a transparent background, visible overflow, and no padding.
For images inside the figure element on both iOS and Android, set the width to the full viewport width minus 40 pixels, with a left margin of 20 pixels and a top margin of 25 pixels. However, for images inside the inner element, use a top margin of 13 pixels instead.
Finally, for the figure caption on iOS and Android, no specific styles are provided.Here’s the rewritten version in fluent, natural English:
On Android devices, the caption area inside the main media figure for feature, standard, and comment articles automatically adjusts its height.
On iOS devices, the caption text and any spans inside the main media figure for all three article types are displayed as block elements. They have no maximum height, are positioned normally, and use a caption text color (defaulting to #999).
For screens wider than 46.25em (about 740px):
– On both iOS and Android, the main media figure in all article types has no maximum width.
– The element’s `:before` pseudo-element is positioned 10px from the left and spans the full viewport width minus 20px.
– Images inside the figure’s inner container are set to the full viewport width minus 60px, with a 30px left margin and 40px top margin.
For screens wider than 61.25em (about 980px):
– The same rules apply for the furniture wrapper in the main media section.Here’s the rewritten version in fluent, natural English:
For the main media image in articles, the element before it should have a width of half the viewport minus 20 pixels, also accounting for the scrollbar width. On iOS and Android devices, the image inside that element should be half the viewport minus 40 pixels (minus the scrollbar width), with a left margin of 18 pixels, automatic height, no padding, and a top margin of 10 pixels.
When the screen is at least 71.25em wide, the top position of the element before the image should be -4 pixels on both iOS and Android.
When the screen is at least 81.25em wide, the left position of that element should be -20 pixels. The image inside should then be half the viewport minus 90 pixels (minus the scrollbar width), with a left margin of 12 pixels, automatic height, a top margin of -10 pixels, and top padding of 21 pixels.
If the user’s device is set to dark mode, the background image for the element before the main media should use the white frame version.Here’s the rewritten version in fluent, natural English:
For the first image in the main media section, the element’s width is set to the full viewport width minus 20 pixels and the scrollbar width. It’s aligned to the left. On iOS and Android devices, the image itself also takes that same width, with no left margin and 10 pixels of padding.
When the screen is at least 61.25em wide, the image width changes to half the viewport width minus 30 pixels and the scrollbar width. It gets a 5-pixel left margin, keeps its height proportional, and has 21 pixels of top padding.
At 81.25em and wider, the image width becomes half the viewport width minus 70 pixels and the scrollbar width. It still has a 5-pixel left margin, auto height, a negative top margin of 10 pixels, and 21 pixels of top padding.
Also, starting at 61.25em, the figure element itself takes full height and has a maximum width of 620 pixels. Its `:before` pseudo-element then spans half the viewport width minus 20 pixels and the scrollbar width, aligned to the left.Here’s the rewritten version in fluent, natural English:
On iOS and Android devices, the main media image in article containers is positioned with specific spacing. At screen widths of 81.25em and above, the first image in the main media section is shifted 20 pixels to the left.
For screens 46.25em and wider, the caption button sits 45 pixels from the bottom. At 61.25em and above, the main media area is set to a maximum width of 620 pixels and adjusts its height automatically.
Images inside figure elements are positioned relative to their container, with no top margin. The inner part of each figure is placed 15 pixels from the top and 20 pixels from the left, spanning the full viewport width minus 40 pixels. These images fill their container completely, covering the area without distortion.
The caption button is positioned 24 pixels from the right and 20 pixels from the bottom of the figure. On screens 46.25em and wider, the inner figure layout adjusts accordingly.For iOS and Android devices, in the feature, standard, and comment article containers, the `.figure__inner` inside `.furniture-wrapper figure.element` is set to a width of 680px, with auto height, and positioned 10px from the top and left. The `#caption-button` inside the same elements is placed 25px from the bottom.
At screen widths of 61.25em and above, the `figure.element` in these containers is set to a width of `calc(50vw – 20px – var(–scrollbar-width, 0px))`.
The `.standfirst` in these containers has no top margin, with 8px of padding on top and 10px on the right. Its `:before` element is hidden. Text inside `.standfirst__inner` (including paragraphs, links, and list items) uses a font size of 20px, normal style, medium weight (500), line height of 115%, and no bottom padding.For iOS and Android, the `.standfirst` inside `.furniture-wrapper` in feature, standard, and comment article containers is set to the grid area “standfirst.”
For the `.meta` section in those same containers, the top padding is removed. The `.meta__published` element is positioned relatively. After it, a full-width line (100vw wide, 1px tall, colored `#dcdcdc`) is added, positioned at the bottom and shifted 10px to the left.
On screens wider than 61.25em, the `.meta` becomes a block element in the “meta” grid area. The line after `.meta__published` is reduced to 50vw wide.
On screens wider than 81.25em, the `.meta__misc` has no left margin.
In dark mode (prefers-color-scheme: dark), the line color changes to `#606060`.
Also, for iOS and Android, the `.meta` and `.keyline` before certain elements in feature and standard article containers are adjusted.Here’s the rewritten version in fluent, natural English:
On iOS and Android devices, certain design elements are hidden. For example, the meta and keyline sections inside article containers are not shown. Also, rich link sidebars within the furniture wrapper are hidden on both platforms. The cutout container in the comment header is also hidden.
The background color of the article body and feature body is set to a light pinkish tone (like a weekend essay style), with a small top margin. Horizontal lines in these sections are thin, borderless, and light gray, with a specific width and spacing.
The first letter of the first paragraph (unless it contains a span) is styled as a large, uppercase drop cap. It uses a serif font, is bold, and has a specific color based on the design theme.
Headings that contain bold text are given a medium font weight.
In dark mode, the horizontal lines become darker gray. The drop cap color changes to a specific red-orange. Links within paragraphs lose their underline.
If an article starts with an element like an atom, the first letter of the following paragraph is also styled as a drop cap.In the backyard of a Brooklyn bar, under hanging lights and fabric draped like giant sails, a cheering crowd welcomed Zohran Mamdani, the mayor of New York City, and his victorious ally, Brad Lander. These Democrats also had harsh words for their own party’s leadership.
“To me, centrists can go fuck themselves,” said Léa Zimmerman, 34. “They’re completely useless, they don’t stand for anything, and if they do take a stand, it’s pathetic. I’m done with pathetic, performative people.”
‘Glorious time to be a New Yorker’ as Lander’s win highlights Mamdani effect
Read more
On Tuesday, the largest city in the US—and the wealthiest in the world—rejected the status quo in favor of democratic socialism. Five days earlier, Washington DC, the nation’s capital, did the same in a mayoral primary. Los Angeles, the heart of the global entertainment industry, could soon follow. Left-leaning candidates have also won in Illinois, Michigan, New Jersey, Pennsylvania, Washington state, and Wisconsin.
Long-held pillars of US politics—unwavering support for Israel and unquestioning faith in capitalism—are now under pressure from growing frustration with the old ways. No one represents this major shift better than Mamdani, 34, a democratic socialist and the first Muslim mayor in New York’s history.
As results came in on Tuesday evening, he showed his political strength by backing three insurgent candidates in the Democratic primary.Primary elections for the US House of Representatives took place. All the candidates had promised to “abolish ICE [Immigration and Customs Enforcement],” condemned Israel’s actions in Gaza as “genocide,” and vowed to “tax the rich.” And all of them won.
Lander, a progressive, defeated two-term incumbent Dan Goldman. Darializa Avila Chevalier, a democratic socialist and former campus organizer, beat Representative Adriano Espaillat, who leads the Congressional Hispanic Caucus. Claire Valdez, another democratic socialist and former union organizer, won an open seat in Brooklyn and Queens, defeating Antonio Reynoso.
These three could be part of a group of more than a dozen left-wing lawmakers heading to Washington next year, in what’s being called “squad 2.0.” That would be a big expansion from the original “squad” of four progressive women elected to the House in 2018. This group might have enough influence to pressure Hakeem Jeffries, the Democratic House minority leader, by withholding votes on party priorities until their demands are met.
Mamdani also saw success in state legislative races, backing five other candidates who won, and he wants to do more. The mayor said he hopes to “write a new chapter in our party’s history, where working people are back at the heart of that struggle.”
Democrats across the political spectrum quickly recognized him as a rising force in the party, likely to have influence on the national stage.
Bill Galston, a senior fellow in governance studies at the Brookings Institution in Washington, said: “Until Tuesday night, Mamdani might have been dismissed as a fluke—an incredibly talented, energetic, and personable young candidate who took advantage of unusual weaknesses in other parts of the Democratic party to win, but it seemed hard to replicate that success.
“After Tuesday night, we have to say that—at least in the bluest parts of blue America—he represents a structural force, not just personal talent. I see this result as increasing the already high odds that there will be a credible left-wing candidate for president in the 2028 Democratic primary.”
‘Reaping what they sowed’
Like Barack Obama and Donald Trump, Mamdani inspires hope in some and fear in others. Progressives see him as a long-overdue course correction and a vital burst of energy needed to fight the president’s authoritarianism. Many believe top Democratic congressional leaders like Jeffries, a New Yorker who endorsed Espaillat and Goldman, and Senate minority leader Chuck Schumer, haven’t stepped up their game.
Ezra Levin, co-founder of Indivisible, a grassroots movement behind the nationwide No Kings protests against Trump, said: “Despite our advocacy, despite organizing three of the largest protests in American history, what we saw was a Democratic establishment that too often was frozen, or appeasing, or pretending to resist, or putting on a show of opposition while sticking with the status quo.
“The result is understandable primary challenges from people who want a Democratic party that fights, that isn’t tied to special interests or corporate money, and want… a real opposition party in this country. For Democratic party leadership, this outcome was completely avoidable. They’re reaping what they sowed.”
Third No Kings protest draws 8 million worldwide to push back on Trump administration Read more
The reaction from Democratic leaders this week was mixed at best. Some see Mamdani not as a savior, but as a threat to their existence. Centrists warn of electoral suicide, fearing that a shift to the left will hurt their chances in swing states during November’s US midterm elections. For Third Way, a centrist Democratic think tank in the tradition of Bill Clinton, the New York results were a disaster.
Matt Bennett, its executive vice-president of public affairs, said: “It’s a bummer, and it’s a problem—not because there’s any danger of losing the left, but because it could hurt us in the middle.”Giving those districts to Republicans isn’t the main worry—it’s that the ideas and rhetoric of candidates like that can be used against Democrats running in tough races. We’ve seen this before with ‘Defund the police,’ and we’re afraid it’s happening again.”
Joe Walsh, a former Republican congressman who became a Democrat and Trump critic, shared the concern. He warned: “Democrats have handed Republicans a huge gift. Republicans will do what I used to do: one crazy leftist says ‘defund the police,’ and then Republicans and conservative media pin that label on the whole party. They’ll try to make the entire party look crazy, America-hating, democratic socialists, and to some extent, it’ll work.”
Republicans, facing a tough climate in November’s midterms, think Mamdani’s rise gives them a lifeline and a unifying cause. House Speaker Mike Johnson said: “The Democratic Party, the socialists, the Marxists, have nominated some of the most radical candidates ever to run for office, and they’re running for Congress. The insurgent left is on the rise.”
Trump, as usual, weighed in on social media on Thursday. “The Communists are finally making their move. I’ve been waiting and preparing for this a long time,” the president wrote. “It’s easy to be a Communist—all you have to do is say, ‘I’ll give you everything,’ but that means you’re taking it away from others who earned it. Over thousands of years, that ideology has never worked once. The game is on. Enjoy watching!”
‘Hungry for change’
Another word likely to fuel Republican attacks is “socialism”—until recently a political taboo in the US, bringing to mind Soviet communism and radical Marxism. But a Gallup survey last year found that Democrats prefer socialism over capitalism by 66% to 42%. The gap was widest among voters under 30, the driving force behind Mamdani’s coalition.
Joseph Geevarghese, executive director of Our Revolution—a group born from democratic socialist Bernie Sanders’ 2016 presidential campaign—said: “Right now, the label isn’t a scarlet letter anymore. Socialism is no longer a weight you can hang around your opponent’s neck. People are hungry for change and look beyond labels to see what people are willing to fight for—and who they’re willing to fight against.”
Economic populism and affordability are key. The winning candidates were specific in attacking Big Tech, property developers, and corporate price gouging. They demanded free childcare, low-cost municipal supermarkets, and rent freezes. High rents and gentrification were framed not as inevitable trends, but as the result of government officials serving powerful oligarchs.
Why are US consumers so angry? It’s not just high prices. Read more.
The Democratic Socialists of America (DSA), which recently surpassed 100,000 members across chapters in nearly all 50 states, has spent years methodically preparing for this moment. Ashik Siddique, the group’s co-chair, said: “A big part of our task is overcoming decades of Cold War and red scare propaganda in the United States that created a stigma against socialism. We’re helping recover the American roots of socialism.”
Siddique points to figures like Martin Luther King, who championed economic justice alongside civil rights. “We want to emphasize that this isn’t something foreign,” he said. “The Soviet Union isn’t relevant anymore. It’s been decades. Young people especially aren’t as vulnerable to that propaganda.”
“Conditions are tough for millennials and younger people. There’s not much faith in the existing system. They’re much more open to the idea that capitalism is causing today’s problems, and there’s a better way to organize how we live and work.”
Centrists have failed to identify the source of this American anxiety, according to Cristina Tzintzún Ramirez, apartner at Ascend Strategy Labs, a social-justice consulting firm in Austin, Texas. “Where the progressive wing succeeds is that they are very clear about who the villain is,” she said. “A few years ago it was ‘take on Wall Street’; now it’s ‘take on Big Tech’ and how that is squeezing the American people. Moderates in this moment feel unimaginative and unpowerful because they’re not fully talking about who we’re up against, besides Donald Trump. What we’re up against is economic inequality and wealth consolidation, and that’s why progressives are winning.”
A crucial litmus test
Young people’s frustrations with the military-industrial complex, the hypocrisy of US foreign policy, and the influence of money in politics have reached a boiling point with US support for Israel’s war in Gaza. In a dramatic shift, about 60% of Americans now view Israel unfavorably, including 80% of Democrats and 57% of Republicans under 50, according to Pew Research.
It’s a litmus test that Democrats can no longer ignore. While Joe Biden was called “Genocide Joe” by pro-Palestinian supporters for backing Israeli Prime Minister Benjamin Netanyahu, Mamdani has accused Israel of committing genocide in Gaza and last month refused to attend New York’s annual Israel Day parade.
Progressive leaders argue that funding from the American Israel Public Affairs Committee (AIPAC) has become “toxic” for many Democratic voters, especially younger ones. In the primary between Lander and Goldman—two Jewish politicians running in one of the most heavily Jewish districts in the US—Lander called for an end to US military aid to Israel. He won in a landslide.
Walsh, the former congressman, believes it’s now nearly impossible for a moderate who strongly supports Israel to win a future Democratic presidential nomination. “I’m very pro-Israel, and I know I’m out of step with where the party is,” he said. “Every time I bring up my support for Israel, Democrats just jump down my throat. It’s one of the most powerful issues driving the party right now.”
Does Walsh, who was part of the right-wing populist Tea Party movement in 2010, see parallels on the Democratic side today? “I’ve been saying for a while that the Democratic party needs its Tea Party moment. They’re having it. The Democratic party establishment sucks. It’s about time there’s a Tea Party in the Democratic party.
“The problem is, the Tea Party turned into [Trump’s Make America Great Again (Maga) movement], and now Maga has taken over the Republican party. If the Democratic party’s Tea Party—these democratic socialists—take over the Democratic party, then we have two parties that are uber extreme. And then we need a brand new party.”
Once the midterms are over, attention will shift to the race for the White House. Mamdani, born in Uganda, isn’t eligible to run. But he could again play the role of kingmaker. Speculation is already swirling around progressive figures like Alexandria Ocasio-Cortez, the representative from New York, and Ro Khanna, the representative from California, both of whom have built national profiles.
“As candidates start to announce [their presidential campaigns] in 2027, if not before, you’re going to see very aggressive contests to own the progressive lane,” predicted Geevarghese of Our Revolution. “People are going to look to Mamdani to try to figure out what the winning message and strategy is. They’re going to find his track record very appealing.”
The mayor, a devoted fan of Arsenal football club and the New York Knicks basketball team, is on a winning streak. “When does the race for 2028 begin?” he asked on stage with his slate of candidates last week. “It starts now.”
Additional reporting by Adam Gabbatt.
Frequently Asked Questions
Here is a list of FAQs about whether the Mamdani Effect could lead to a leftwing president being elected in 2028 written in a natural clear tone with concise answers
BeginnerLevel Questions
1 What is the Mamdani Effect
Its a political theory named after scholar Mahmood Mamdani suggesting that when a rightwing government becomes extremely authoritarian or corrupt it creates a strong public backlash This backlash often pushes voters toward a leftwing or progressive candidate in the next election
2 Is the Mamdani Effect a guaranteed outcome
No Its a pattern not a law Many factorslike the economy the strength of the opposition and voter turnoutcan either trigger or prevent it
3 Does the Mamdani Effect mean a leftwing president will win in 2028
Not necessarily It increases the chance of a leftwing victory if current conditions are present But its not a predictionmore of a warning or a possibility
4 Why is everyone talking about 2028 specifically
Because the next US presidential election is in 2028 If the Mamdani Effect is real it would likely play out in that election cycle following the end of a potential second term for a rightwing president
IntermediateLevel Questions
5 What conditions make the Mamdani Effect more likely
Its most likely when
A rightwing government uses aggressive tactics
The economy is in a deep recession or theres a major crisis
The leftwing opposition is united and offers a clear alternative
Voter turnout among young and minority groups increases dramatically
6 Has the Mamdani Effect ever happened before in the US
Some historians compare it to the 1932 election of Franklin D Roosevelt after the Hoover administrations perceived failures during the Great Depression Others point to the 2008 election of Barack Obama after the unpopular Iraq War and financial crisis under George W Bush
7 Could the Mamdani Effect backfire and actually help the right
Yes If the backlash is poorly organized or the leftwing candidate is