This CSS code defines a custom font family called “Guardian Headline Full” with multiple font weights and styles. It includes light (300), regular (400), medium (500), and semibold (600) weights, each available in both normal and italic versions. The font files are provided in WOFF2, WOFF, and TrueType formats from the Guardian’s asset servers.This CSS code defines several font faces for the Guardian Headline Full and Guardian Titlepiece font families. Each font face specifies different weights and styles (normal or italic) and provides multiple file formats (WOFF2, WOFF, and TrueType) for cross-browser compatibility. The fonts are hosted on the Guardian’s asset server and include variations from light to black weights, with corresponding italic styles where applicable.@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;
}This CSS code defines font styles and responsive grid layouts for various sections of a website, such as articles, comments, and features. It specifies custom fonts from the Guardian with different weights and styles, and adjusts the grid structure for different screen sizes to ensure proper alignment and spacing of content elements like titles, headlines, media, and body text.For interactive grid figures with immersive captions in the body, feature body, or data-gu-name body, the caption padding is set to 4 pixels at the top and 0 elsewhere.
In various content areas like article body, interactive content, comment body, and feature body, the grid areas for lines and meta are defined from row 2 to 5 and column 1 to 2. The lines have a maximum content height and a top margin of 5 pixels, while the meta elements have an 18-pixel top margin.
On larger screens with a minimum width of 81.25em, the grid template columns for these content areas are set to 219px, 1px, 620px, 80px, and 300px.
For iOS and Android devices, the article header’s standfirst text uses specific font families with a medium weight. The article kicker section is displayed as a block, and its first letter is capitalized. The keyline-4 element has a top padding of 12 pixels.
The byline author in the meta misc section uses a bold font family, and links within it are also bold. Image figures in articles have an automatic height, and paragraphs following atomic elements have no top margin.
Font faces for Guardian Headline Full are defined with light and light italic weights, sourcing from woff2, woff, and truetype files.The Guardian Headline Full font family includes various styles and weights, such as regular, medium, semibold, and bold, each available in normal and italic versions. These fonts are hosted online and can be loaded in different file formats like WOFF2, WOFF, and TrueType for web use.@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));
position: relative;
left: 50%;
right: 50%;
margin-left: calc(-50vw + var(–half-scrollbar-width)) !important;
margin-right: calc(-50vw + var(–half-scrollbar-width)) !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;
}
}
:root {
–dateline: #606060;
–headerBorder: #dcdcdc;
–captionText: #999;
–captionBackground: hsla(0, 0%, 7%, 0.72);
–feature: #c70000;
–new-pillar-colour: var(–primary-pillar, var(–feature));
}
.content__main-column–interactive .element.element-atom,
.element.element-atom {
padding: 0;
}
#article-body > div .element-atom:first-of-type + p:first-of-type,
#article-body > div .element-atom:first-of-type + .sign-in-ga {
/ No additional styles specified /
}For the first paragraph in various content sections like articles, comments, and features, add a top padding of 14 pixels.
Apply a drop cap style to the first letter of these paragraphs, using the Guardian Headline or similar serif fonts in bold, with a size of 111 pixels and a line height of 92 pixels. Make it uppercase, float it to the left, and set the color using a CSS variable for drop caps or a new pillar color.
Remove top padding for paragraphs that come right after a horizontal rule.
Ensure captions for showcase elements are positioned statically and have a maximum width of 620 pixels.
For immersive elements, set their width to the full viewport width minus the scrollbar. On screens up to 71.24em wide, limit the maximum width to 978 pixels and adjust caption padding based on screen size.@media (max-width: 46.24em) {
.element.element–immersive.element-immersive {
margin-left: -10px !important;
margin-right: 0 !important;
left: 0;
}
}
@media (max-width: 46.24em) and (min-width: 30em) {
.element.element–immersive.element-immersive {
margin-left: -20px !important;
}
.element.element–immersive.element-immersive figcaption {
padding-inline: 20px;
}
}
@media (min-width: 61.25em) {
.furniture-wrapper {
display: grid;
grid-column-gap: 20px;
grid-row-gap: 0px;
grid-template-columns: [title-start headline-start meta-start standfirst-start] repeat(5, 1fr) [title-end headline-end meta-end standfirst-end portrait-start] repeat(5, 1fr) [portrait-end];
grid-template-rows: [title-start portrait-start] .25fr [title-end headline-start] 1fr [headline-end standfirst-start] .75fr [standfirst-end meta-start] auto [meta-end portrait-end];
}
.furniture-wrapper #headline > div:first-child,
.furniture-wrapper [data-gu-name=headline] > div:first-child,
.furniture-wrapper .headline > div:first-child {
border-top: 1px solid var(–headerBorder);
}
.furniture-wrapper #meta,
.furniture-wrapper [data-gu-name=meta] {
position: relative;
padding-top: 2px;
margin-right: 0;
}
.furniture-wrapper .standfirst .content__standfirst,
.furniture-wrapper #standfirst .content__standfirst,
.furniture-wrapper [data-gu-name=standfirst] .content__standfirst {
margin-bottom: 4px;
}
.furniture-wrapper .standfirst ul li,
.furniture-wrapper #standfirst ul li,
.furniture-wrapper [data-gu-name=standfirst] ul li {
font-size: 20px;
}
.furniture-wrapper .standfirst li a,
.furniture-wrapper .standfirst a,
.furniture-wrapper #standfirst li a,
.furniture-wrapper #standfirst a,
.furniture-wrapper [data-gu-name=standfirst] li a,
.furniture-wrapper [data-gu-name=standfirst] a {
border-bottom: none;
background-image: none !important;
text-decoration: underline;
text-underline-offset: 6px;
text-decoration-color: var(–headerBorder, #dcdcdc);
}
.furniture-wrapper .standfirst li a:hover,
.furniture-wrapper .standfirst a:hover,
.furniture-wrapper #standfirst li a:hover,
.furniture-wrapper #standfirst a:hover,
.furniture-wrapper [data-gu-name=standfirst] li a:hover,
.furniture-wrapper [data-gu-name=standfirst] a:hover {
text-decoration-color: var(–new-pillar-colour);
}
.furniture-wrapper .standfirst p:first-of-type,
.furniture-wrapper #standfirst p:first-of-type,
.furniture-wrapper [data-gu-name=standfirst] p:first-of-type {
border-top: 1px solid var(–headerBorder);
padding-bottom: 0;
}
}
@media (min-width: 61.25em) and (min-width: 71.25em) {
.furniture-wrapper .standfirst p:first-of-type,
.furniture-wrapper #standfirst p:first-of-type,
.furniture-wrapper [data-gu-name=standfirst] p:first-of-type {
border-top: unset;
}
}
@media (min-width: 61.25em) {
.furniture-wrapper figure {
margin: 0 0 0 -10px;
}
.furniture-wrapper figure[data-spacefinder-role=inline].element {
max-width: 630px;
}
}
@media (min-width: 71.25em) {
.furniture-wrapper {
grid-template-columns: [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];
grid-template-rows: [title-start portrait-start] 80px [title-end headline-start] auto [headline-end standfirst-start meta-start] auto [standfirst-end meta-end portrait-end];
}
.furniture-wrapper #meta:before,
.furniture-wrapper [data-gu-name=meta]:before {
content: “”;
width: 540px;
position: absolute;
top: 0;
background-color: var(–headerBorder);
height: 1px;
}
.furniture-wrapper .standfirst p,
.furniture-wrapper #standfirst p,
.furniture-wrapper [data-gu-name=standfirst] p {
border-top: unset;
}
.furniture-wrapper .standfirst:before,
.furniture-wrapper #standfirst:before,
.furniture-wrapper [data-gu-name=standfirst]:before {
content: “”;
width: 1px;
background-color: var(–headerBorder);
height: 100%;
position: absolute;
top: 0;
left: .5px;
}
}
@media (min-width: 81.25em) {
.furniture-wrapper {
grid-template-columns: [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];
grid-template-rows: [title-start portrait-start] .25fr [title-end headline-start] 1fr [headline-end standfirst-start meta-start] .75fr [standfirst-end meta-end portrait-end];
}
}The CSS code defines styles for a webpage layout, adjusting elements like headlines, meta information, and media based on screen size. Headlines are set to a bold font with specific widths and font sizes that change on larger screens. For medium screens, some margins are removed, and on larger screens, certain lines are hidden. Social and comment elements have borders matching the header’s color, and some components are not displayed.
The standfirst section has left padding and positioning, with paragraph text in a regular weight and larger font size. Main media elements are positioned relatively, taking full width on smaller screens and adjusting margins. Captions are styled with a background color and text color, positioned at the bottom, and include a button for toggling visibility that appears on the right. On interactive content pages, headings have a maximum width, and dark mode support is included for iOS and Android devices, with color variables for features and backgrounds.For iOS and Android devices, the first letter of the first paragraph in feature, standard, and comment articles is styled with a secondary pillar color. Article headers are hidden, while furniture wrappers have minimal padding. Labels within these wrappers are bold, capitalized, and use a specific font family with a new pillar color. Headlines are set to 32px, bold, with bottom padding and a dark gray color. Image figures in the furniture wrapper are also adjusted for these platforms.For Android devices, images in article containers are positioned relatively with a 14px top margin, left-aligned by -10px, and span the full viewport width minus the scrollbar, maintaining their aspect ratio.
On both iOS and Android, inner elements of images in feature, standard, and comment articles have a transparent background, match the viewport width excluding the scrollbar, and automatically adjust their height.
The standfirst section in these article types on iOS and Android has 4px top padding, 24px bottom padding, and extends 10px to the right. Its text uses the Guardian Headline font family or fallbacks like Georgia.
Links within the standfirst on both platforms are styled with the new pillar color, underlined with a 6px offset, and use a light gray underline color without any background image or border.For iOS and Android devices, when hovering over links within the standfirst section of feature, standard, or comment articles, the text decoration color changes to the new pillar color. Additionally, the meta section in these articles has no margin, and elements like byline, author, and related links adopt the new pillar color for text. The meta misc area has no padding, and any SVG icons within it are unaffected by these changes.For Android and iOS devices, the following styles apply to feature, standard, and comment article containers:
– SVG icons in the meta section use the new pillar color for strokes.
– Caption buttons in showcase elements are displayed as centered flex containers, sized 28×28 pixels with 5px padding, positioned 14px from the right.
– Article body content has 12px horizontal padding.
– Regular image elements (excluding thumbnails and immersive ones) span the viewport width minus 24px and scrollbar width, with auto height and no margin. Their captions have no padding.
– Immersive image elements span the full viewport width minus scrollbar width.
– Quoted blockquotes in prose use the new pillar color for their decorative before element.
– Links in prose sections are styled with the new pillar color.For iOS and Android devices, links within article bodies in feature, standard, and comment sections are styled with the primary pillar color, underlined with a 6px offset, and use the header border color for the underline. When hovered over, the underline changes to the new pillar color.
In dark mode, the furniture wrapper background becomes dark gray. Labels adopt the new pillar color, while headlines and standfirst text use the header border color. Links in standfirsts and author bylines also take on the header border color.For iOS and Android devices, apply the following styles to feature, standard, and comment article containers:
– Set the stroke color of SVG icons in the meta section to the new pillar color.
– Use the dateline color for captions in showcase image figures.
– Apply the new pillar color to quoted text in article body prose.
– Use a dark background for main content areas (article body, feature body, comment body, and interactive content), marked as important.
– Style the first letter of paragraphs following atomic elements with appropriate drop cap formatting.This CSS code targets the first letter of paragraphs that follow specific elements within various article containers on iOS and Android devices. It applies to different sections like the main article body, feature body, comment body, and interactive content areas, ensuring consistent styling for drop caps or initial letter formatting across the platform.For Android devices, the first letter of paragraphs in various article containers (feature, standard, comment) and their specific sections (article-body, feature-body, comment-body, content–interactive) will be styled with a color variable, defaulting to white. This applies to paragraphs following elements like .element-atom, .sign-in-gate, or #sign-in-gate.
On iOS and Android comment articles, the standfirst element in the furniture-wrapper has a top padding of 24px and no top margin. Additionally, all h2 headings in prose are set to a font size of 24px.For iOS devices, the caption button has a top padding of 6px and side padding of 5px, while on Android, it’s 4px on all sides.
In dark mode, text and icon colors adjust for better readability, with specific shades for follow text, icons, and bylines.
The branding element is set to display prominently when the furniture wrapper includes a Guardian organization logo.
Headlines and standfirst text use a medium font weight (500) for emphasis.
The page background is styled with a light pink shade (#fff4f2) for weekend essays, which also applies to article sections and sub-meta areas.
Lines are hidden, and the furniture wrapper is positioned relatively, with a grid layout for larger screens.
The article header has a fixed height and includes a decorative book GIF in the bottom right corner of content labels, scaling up on wider screens. A horizontal line appears below content labels on smaller devices but disappears on larger ones.
The header height increases slightly on very large screens.For screens wider than 1300px, adjust the furniture wrapper’s article header and title elements to a height of 125px.
On the same screen size, shift the headline and related elements upward by 2 pixels.
Remove bottom padding from the headline’s inner div elements.
Set the portrait main media headline wrapper to full height, relative positioning, hidden overflow, and add 24px bottom padding.
Remove maximum width restrictions from headline titles and links, and enhance hover effects with thicker underlines and 6px offset.
Apply consistent styling to headlines, links, and bylines: 115% line height, medium font weight, and 36px font size, increasing to 50px on screens over 1140px.
Position the standfirst element relatively with 4px top padding, removing it on 980px+ screens and reducing to 2px on 1140px+ screens.
Display branding elements within meta containers.
Position main media elements relatively, placing them in the portrait grid area on 980px+ screens.
Ensure main media containers maintain relative positioning.The furniture wrapper styles the main media section to display a span after a div as a block element. Figures within this section are set to full height with a left margin of 10 pixels.
Images and captions inside these figures adjust their width based on the viewport minus 40 pixels and the scrollbar width, with auto height, a left margin of 20 pixels, and vertical padding of 10 pixels. Captions also have a bottom margin and padding of 10 pixels.
A decorative frame is added as a background image before each figure, spanning the viewport width minus 20 pixels and the scrollbar width, centered and not repeating, positioned absolutely at the top left with the same height as the figure.
For medium screens and larger (min-width: 46.25em), figures lose their left margin. Images resize to 670 pixels wide with adjusted margins and padding, while the frame expands to 700 pixels wide and shifts left. Captions become 650 pixels wide with increased margins and padding.
On larger screens (min-width: 61.25em), the frame narrows to 470 pixels. Images and captions shrink to 450 pixels wide, with no left margin for images and reduced padding. Captions have a smaller bottom margin.
For even wider screens (min-width: 71.25em), the frame grows to 550 pixels wide. Images are 520 pixels wide with a slight left margin and minimal padding, and captions are 510 pixels wide with adjusted margins.
On the largest screens (min-width: 81.25em), the frame reaches 630 pixels wide. Images expand to 600 pixels with vertical padding, and captions match that width with fine-tuned margins.
The caption button is positioned 15 pixels from the right and 20 pixels from the bottom, adjusting its placement at different breakpoints for optimal spacing.
A no-media division is centered using flexbox, taking up the full width.The CSS code defines styles for a furniture wrapper’s main media section, setting paragraph text to 24px size, bold weight, underlined, and a specific color. For interactive content columns on wider screens, it removes left margin and hides a pseudo-element. Supporting elements with blockquotes get a background color, while the first letter of paragraphs has a large, uppercase drop cap style in a headline font. Headings are styled with a reddish color and lighter weight, increasing in size on larger screens. Figures containing iframes also receive a background color. On apps and mobile devices, follow buttons are displayed with adjusted font sizes, and media elements are set to fit their content. In dark mode, the background colors change to dark shades, and a book image is used as a background for certain header elements.For iOS and Android apps, the main media figure uses a specific white frame background image. The body background is set to white on these devices.
Labels and headlines in article containers are displayed with a medium font weight.
In light mode, the background color for iOS and Android is a custom weekend essay background or a light pink shade.
For iOS and Android, the opinion section uses a primary orange color for opinion elements and bylines. In light mode, the background remains the weekend essay color.
In dark mode, the background changes to dark gray, and the opinion primary color becomes a brighter orange. Opinion articles without media type have their background and tags reset to default.
Article containers on iOS and Android use the weekend essay background color.
On larger screens, the furniture wrapper in article containers adjusts its grid layout with specific columns, rows, and gaps.
The title and GIF wrapper in article containers is set to display as a flexible row, spaced apart, and positioned relatively.For iOS and Android devices, the content labels in the title and GIF wrapper of feature, standard, and comment articles have a font size of 17px, normal style, bold weight, and 115% line height. Links within these labels use the new pillar color (defaulting to #c74600) and have no text transformation.
GIF containers and their images in these sections are set to 70px in width and height. The white book GIF versions are hidden.
In dark mode, the regular book GIF elements are not displayed.This CSS code hides certain GIF elements with the class “book-gif” on iOS and Android devices for feature, standard, and comment article containers. Instead, it displays white versions of these GIFs (“book-gif-white”). It also adds a horizontal line at the bottom of the title and GIF wrapper on these devices, which spans the full viewport width on smaller screens but reduces to half the viewport width on screens larger than 61.25em.When the color scheme is set to dark on iOS or Android devices, the background color for the title and GIF wrapper in feature, standard, and comment articles changes to #606060.
For screens wider than 61.25em, the portrait main media headline wrapper in these article types on iOS and Android is assigned to the grid area named “headline.”
Additionally, the headline and byline text in feature, standard, and comment articles on both iOS and Android have a font size of 36px, normal style, medium weight (500), and a line height of 115%.For Android devices, the author’s name in comment articles is displayed in red.
In dark mode, the author’s name across all article types on iOS and Android devices appears in a darker orange.
On both iOS and Android, author profile pictures are hidden in all article types.
Article headlines have no bottom margin or padding.
The author’s byline is shown in italic text, but the author’s name within it remains in normal font.
The main media element in articles adjusts its height automatically, maintains a 4:5 ratio, and has a transparent background.For iOS and Android devices, the following styles apply to feature, standard, and comment article containers:
– The main media figure element has full height and no left margin.
– Its inner figure is positioned at the top-left corner.
– The element’s inner container has a transparent background, no padding, and visible overflow.
– Images within these elements span the viewport width minus 40 pixels, with 20 pixels left margin and 25 pixels top margin.
– For images directly inside the element’s inner container, the top margin is reduced to 13 pixels.
– Figure captions are also styled consistently across these contexts.For all devices, the figure captions within the main media section will have automatic height.
On iOS and Android devices, captions in feature, standard, and comment articles are displayed as blocks with no maximum height, positioned relatively, and use a gray color defined by the –captionText variable.
On screens wider than 46.25em, figures in these articles have no maximum width. A decorative element before each figure spans almost the full viewport width with small margins. Images inside these figures take up most of the viewport width with centered margins and top spacing.
For screens wider than 61.25em, similar adjustments apply to the decorative elements before figures.For iOS and Android devices, the main media figure elements in feature, standard, and comment article containers have specific styles. The width of the figure’s pseudo-element is set to half the viewport width minus 20 pixels and any scrollbar width. Images within these elements are sized at half the viewport width minus 40 pixels and the scrollbar width, with a left margin of 18 pixels, auto height, no padding, and a top margin of 10 pixels.
On larger screens (over 71.25em), the pseudo-element is positioned 4 pixels higher. For even wider screens (over 81.25em), the pseudo-element shifts 20 pixels to the left, and images adjust to half the viewport width minus 90 pixels and the scrollbar width, with a left margin of 12 pixels, auto height, a negative top margin of 10 pixels, and a top padding of 21 pixels.
In dark mode, the pseudo-element uses a white frame image as its background. Additionally, the first image in these elements may have unique styling.For iOS and Android devices, the first image in the main media section of feature, standard, and comment articles has specific styling. On smaller screens, the image and its pseudo-element span the viewport width minus 20 pixels and the scrollbar width, with the image having no left margin and 10px padding.
When the screen width reaches 61.25em, the image width adjusts to half the viewport minus 30px and the scrollbar width, gains a 5px left margin, auto height, and 21px top padding. The container’s height becomes 100% with a maximum width of 620px, and its pseudo-element also spans half the viewport minus 20px and the scrollbar width.
At 81.25em screen width, the image width reduces further to half the viewport minus 70px and the scrollbar width, maintains the 5px left margin, auto height, -10px top margin, and 21px top padding.For iOS and Android devices, the layout of images and captions in feature, standard, and comment articles is adjusted as follows:
On smaller screens, the first image in an article is shifted 20 pixels to the left.
When the screen width is at least 46.25em, the caption button is positioned 45 pixels from the bottom.
For screens 61.25em or wider, the main media area is set to a portrait layout with a maximum width of 620 pixels and automatic height.
Images within these articles are relatively positioned with no top margin. Their inner container is absolutely positioned 15 pixels from the top and 20 pixels from the left, spanning the full viewport width minus 40 pixels, and the image itself fills this space while maintaining its aspect ratio.
The caption button is placed 24 pixels from the right and 20 pixels from the bottom.
On medium-sized screens (46.25em and above), the inner container of the image adjusts its positioning accordingly.For Android devices, the inner figure element in feature, standard, and comment articles is set to 680px wide with automatic height, positioned 10px from the top and left edges. The caption button in these articles is placed 25px from the bottom on both iOS and Android.
On wider screens (over 61.25em), figures in these articles adjust to half the viewport width minus 20px and the scrollbar width for both iOS and Android.
The standfirst section in these articles has no top margin, with 8px top padding and 10px right padding, and its decorative element is hidden. Text elements within the standfirst use a 20px font with normal style, medium weight, 115% line height, and no bottom padding.
On larger screens (over 61.25em), the standfirst in feature articles…For iOS and Android devices, the standfirst section in feature, standard, and comment article containers is assigned to the grid area named “standfirst.”
On these devices, the meta section in the same article types has no top padding and displays the published date with a relative position. A thin gray line appears below the published date, spanning the full viewport width and positioned slightly to the left.
On larger screens (over 61.25em wide), the meta section becomes a block element in the “meta” grid area, and the line below the published date shortens to half the viewport width.
For even wider screens (over 81.25em), the miscellaneous meta content aligns to the left without any margin.
In dark mode, the line below the published date changes to a darker gray color.
Additionally, for iOS devices, the meta and keyline sections in feature, standard, and comment articles have a preceding element.For iOS and Android devices, the following styles apply to feature, standard, and comment articles:
– Hide meta and keyline elements before furniture wrappers.
– Remove rich link asides from furniture wrappers.
– Conceal cutout containers in comment headers.
– Set article and feature body backgrounds to a weekend essay color with a top margin of 6 pixels.
– Style horizontal rules as short, light gray lines with specific spacing.
– Format the first letter of initial paragraphs with a large, uppercase drop cap using headline fonts and pillar colors.
– Apply medium font weight to strong or bold text within h2 headings.
– In dark mode, adjust horizontal rule colors, drop cap colors to a new pillar shade, and remove underlines from paragraph links.
– Use medium font weight for drop caps following the first atom element in article or feature bodies.On a cold Friday night in late September, Vegard Rabban and his teenage son were returning from football practice on Norway’s west coast when they noticed an unusual red light in the sky between their house and garage. Rabban, a salmon fisher, firefighter, and father of three, immediately recognized it as a drone. They watched for two minutes, observing the red lights and estimating the drone to be about 1.5 meters wide.
As an experienced drone user familiar with the restrictions near Ørland airport—a key NATO and Norwegian air force base—Rabban found it odd to see a drone flying at night. It wasn’t until the next morning, after reading about drone incursions at Norwegian airports, that he began to ponder the incident more deeply.
His sons felt uneasy, so Rabban tried to reassure them calmly. He expressed that while Norway is currently distant from the conflict, the drone sightings suggest someone is monitoring their reactions. Although not personally frightened, Rabban acknowledges the psychological impact on Norwegians and worries that the situation in Europe could quickly intensify as more people report seeing drones.What’s going on? People are curious.
Since three drones were shot down in Polish airspace last month, reports of unmanned aerial vehicles have been increasing across Europe, with some even causing major airports to shut down.
After Copenhagen airport closed, Danish Prime Minister Mette Frederiksen spoke to the nation, stating, “We are at the start of a hybrid war against Europe.”
On Thursday, an intrusion over Munich airport led to suspended operations, canceling 17 flights and disrupting travel for almost 3,000 passengers.
But these are only the incidents made public. The Guardian has learned that drones began appearing regularly late last year around industrial parks near two major energy plants in eastern Estonia, close to the Russian border.
The first sightings occurred months before the Baltic states synchronized their electricity grids with Europe and severed connections with Russia and Belarus.
Raine Pajo, CEO of Enefit Power, reported, “This year we have confirmed 22 unregistered drone flights. There has been no practical impact on our operations. We are in close cooperation with Estonian police and border guards and are monitoring the situation closely.”
It hasn’t been confirmed that the drones were sent by the Kremlin. Russia, as expected, denies involvement. When a moderator jokingly asked why the Russian president was sending drones over Denmark, Vladimir Putin laughed and said, “I won’t do it any more,” adding that NATO is a “paper tiger.”
The most common explanation is that Moscow is testing the capabilities of its NATO neighbors. Egert Belitšev, director general of the Estonian border force, noted, “The provocations are regular—testing our activities, our abilities, and our reactions.”
Dr. Beryl Pong, who leads the Centre for Drones and Culture project at the University of Cambridge, pointed out that there’s also a psychological impact that is often overlooked. It brings the reality of war into the relatively sheltered lives of Western and Northern Europeans, making them question if this is something they want to face.
Earlier this year, the Imperial War Museum featured an immersive installation called “Beware Blue Skies,” which aimed to convey the experience of living under drone surveillance. The title came from a 13-year-old boy’s testimony to Washington lawmakers about the psychological toll of drones in Pakistan: “I no longer love blue skies… in fact, I now prefer grey skies. The drones do not fly when the skies are grey.”
Pong mentioned that much academic research on drones focuses on strikes and violence, neglecting their insidious effects on those below. She believes the incursions are meant to unsettle and provoke, operating in a grey zone where they demonstrate presence and vulnerability without escalating to full-scale aggression as seen in Ukraine and Russia. There’s a hint and suggestion, but without confirmation, leaving room for doubt about intentions—whether benign or potentially life-threatening.
Dr. Richard Carter, who collaborated with Pong, noted that since humans began using flight in warfare, one consequence has been to turn peaceful skies into a source of fear.He described these incursions as “a source of persistent threat,” noting their value in testing security responses and disrupting daily life by making people feel their world is suddenly threatened by unknown objects.
Dr. Robert Bartholomew, a senior lecturer in psychological medicine at the University of Auckland, placed the Scandinavian incidents in a historical context. He remarked, “It’s often said that history doesn’t repeat itself, but it rhymes—and what we’re witnessing over northern Europe is history rhyming.” He pointed out a long tradition of UFO scares in the region, often blamed on Russia or the former Soviet Union.
In the 1930s, “ghost planes” sparked fears of Soviet reconnaissance before an invasion. Bartholomew explained that many of these sightings were likely astronomical phenomena like Venus low on the horizon, as no plane at the time could have stayed airborne for so long. By 1946, northern Europe was alarmed by mass sightings of “ghost rockets.” After World War II, with Russian forces occupying Peenemünde—the former hub of Nazi rocket development—these were thought to be Soviet rockets used to intimidate neighbors.
Bartholomew clarified that the “ghost rocket” wave actually coincided with rare events: geomagnetic comets and high solar activity, which produced stunning auroras and made meteors more visible.
Moving to the 1970s and 80s, reports of unidentified submerged objects (USOs) emerged, often assumed to be Soviet submarines. However, their widespread nature made this unlikely, as there were too many sightings to all be submarines.
The drone sightings of 2025 are real, but Bartholomew noted they occur amid a “perfect storm” of geopolitical tensions fueled by Russian aggression and uncertainties about the U.S. under Donald Trump. He observed that countries like Denmark feel more vulnerable now than in recent memory, leading to a collective anxiety where the sky reflects societal fears, exacerbated by shorter autumn days and darkness that heighten ambiguity and distress for those with anxiety disorders.
Frequently Asked Questions
Of course Here is a list of FAQs about Europes unexplained drone sightings designed to be clear concise and address the concerns causing collective anxiety
General Beginner Questions
1 Whats happening with the drones in Europe
There have been numerous reports particularly in countries like France Belgium and the UK of unidentified drones flying in patterns over sensitive areas like nuclear power plants airports and cities often at night Authorities have not been able to consistently identify who is operating them or why
2 Why is this causing so much anxiety
The anxiety stems from the mystery Not knowing who is flying the drones their purpose or what they are capable of creates a sense of vulnerability and fear about safety espionage or even a potential attack
3 Are these drones dangerous
Most individual consumer drones are not physically dangerous on their own The primary concern isnt the drone itself but its potential use for spying disrupting air traffic or carrying a harmful payload The lack of clear intent is what makes the situation feel threatening
4 Who could be behind these flights
Authorities have investigated many possibilities including pranksters hobbyist groups antinuclear activists commercial companies testing boundaries and statesponsored espionage So far no single explanation has been proven for the majority of incidents
Advanced Detailed Questions
5 What makes these sightings unexplained
They are unexplained because despite investigations the operator is rarely caught the flight patterns dont match typical hobbyist use and the drones often appear sophisticated enough to fly for long durations and in poor weather
6 Cant the authorities just shoot them down or jam them
Its not that simple Shooting down a drone in a populated area is extremely dangerous due to falling debris Jamming signals can interfere with critical communications like emergency services mobile networks and air traffic control and may be illegal
7 What are the legal consequences for flying a drone like this
Flying drones over critical infrastructure in nofly zones or without proper identification is illegal in the EU and UK Consequences can include heavy fines confiscation of equipment and even imprisonment depending on the severity and intent
8 How are governments and agencies responding
Responses include increasing patrols near sensitive sites developing and deploying advanced anti