Is the eastern flank really quiet? NATO leaders are worried they can no longer count on US support if Russia attacks.

Is the eastern flank really quiet? NATO leaders are worried they can no longer count on US support if Russia attacks.

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Light.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Light.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-LightItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-LightItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-Regular.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Regular.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-RegularItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-RegularItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-Medium.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Medium.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-MediumItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-MediumItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-Semibold.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.ttf’) format(‘truetype’);
font-weight: 600;
font-style: italic;
}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/full-not-hinted/GHGuardianHeadline-Bold.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-BoldItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BoldItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-Black.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Black.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-BlackItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-BlackItalic.ttf’) format(‘truetype’);
font-weight: 900;
font-style: italic;
}

@font-face {
font-family: ‘Guardian Titlepiece’;
src: url(‘https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.woff2’) format(‘woff2’),
url(‘https://interactive.guim.co.uk/fonts/garnett/GTGuardianTitlepiece-Bold.woff’) format(‘woff’),
url(‘https://interactive.guim.co.uk/fonts/garnett/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: -10px;
}
}
“`Here is the rewritten text in fluent, natural English:

The left margin is set to -11px. Inside the main interactive column, elements with the class “element-atom” have no top or bottom margin, but do have 12px of padding on both top and bottom. If a paragraph is followed by an element-atom, that element has no padding and 12px of margin on top and bottom. Inline elements are limited to a maximum width of 620px.

On screens wider than 61.25em, figures with the role “inline” are also capped at 620px wide. For media sections that contain a looping figure, the caption is placed above other elements using a z-index of 6. The loop button, which is 32px wide, is aligned to the bottom-right of the figure, with a 40px bottom margin and 3px right margin. The caption button has a z-index of 100.

On screens wider than 46.25em, cinemagraph figures inside media sections can have an unrestricted maximum height. In the body section, self-hosted videos are displayed as block elements, 100% wide, with a max width of 620px, and 12px of margin on top and bottom. If a self-hosted video is inside a looping figure, both the figure and the video are 100% wide, auto-height, centered, and capped at 620px.

If a self-hosted video is inside an immersive looping figure, it has no max width and 12px of vertical margin. On screens wider than 71.25em, such immersive videos are 1140px wide with a left margin of -180px, and their captions have a 20px left margin. On screens wider than 81.25em, they are 1300px wide with a left margin of -260px.

The root variables define colors for dateline (gray), header border (light gray), caption text (gray), caption background (dark with transparency), and feature (red). The new pillar color defaults to the primary pillar or feature. Subheadings, pullquotes, and block quotes use the secondary pillar color. Block quotes also use a fill color based on the secondary pillar.

In dark mode (unless overridden), subheadings, pullquotes, and block quotes use the dark mode pillar color instead.

Elements with the class “element-atom” have no padding. In the article body, if an element-atom is the first child and is followed by a paragraph (or a sign-in gate followed by a paragraph), or if a horizontal rule (that is not the last one) is followed by a paragraph, that paragraph gets 14px of top padding. The same applies to interactive content, comment bodies, and feature bodies.Here is the rewritten text in fluent, natural English:

The first letter of the first paragraph after certain elements—such as the first atom, a sign-in gate, or a horizontal rule—uses a large, bold, uppercase style. It is set in the Guardian Headline font family, with a font size of 111 pixels and a line height of 92 pixels. This letter floats to the left, has a small right margin, and is vertically aligned to the top of the text. Its color matches the drop cap or pillar color.

Paragraphs that come right after a horizontal rule have no top padding.

Pull quotes within the main content areas are limited to a maximum width of 620 pixels.

For images in a showcase layout, the caption is positioned statically and takes up the full width, up to 620 pixels. On wider screens (at least 71.25em), the caption becomes absolutely positioned and is limited to 140 pixels wide. On even wider screens (at least 81.25em), the caption can be up to 220 pixels wide.

Immersive elements take up the full viewport width, minus the scrollbar width. On smaller screens (up to 71.24em), their maximum width is 978 pixels, and the caption has horizontal padding of 10 pixels (or 20 pixels on screens at least 30em wide). On medium screens (between 46.25em and 61.24em), the maximum width is 738 pixels. On very small screens (up to 46.24em), the immersive element has a negative left margin and no right margin, aligning to the left edge.For screens at least 30em wide:
– For `.element.element–immersive.element-immersive`, set the left margin to -20px.
– For its `figcaption`, add 20px of padding on the left and right.

For screens at least 71.25em wide:
– Inside `[data-gu-name=body]`, for `figure.element.element–showcase.element-showcase` and `.content__main-column–interactive figure.element.element–showcase.element-showcase`, set the left margin to -160px.

For screens at least 81.25em wide:
– Inside `[data-gu-name=body]`, for the same elements, set the left margin to -240px.

The `.furniture-wrapper` class is positioned relatively.

For screens at least 61.25em wide:
– Use a CSS grid with 20px column gaps and no row gaps. The grid has 10 columns: the first 5 are for title, headline, meta, and standfirst; the last 5 are for portrait.
– The grid rows are: title and portrait start together at 0.25fr, headline at 1fr, standfirst at 0.75fr, and meta at auto. Portrait spans the full height.
– Inside `#headline`, `[data-gu-name=headline]`, or `.headline`, the first child `div` gets a 1px top border using `var(–headerBorder)`.
– For `#meta` or `[data-gu-name=meta]`, set relative positioning, 2px top padding, and no right margin.
– For standfirst elements (`.standfirst .content__standfirst`, `#standfirst .content__standfirst`, `[data-gu-name=standfirst] .content__standfirst`), set bottom margin to 4px.
– In standfirst lists, `li` items have a font size of 20px.
– Links in standfirst (`li a`, `a`) have no bottom border, no background image, underlined text with a 6px offset, and underline color set to `var(–headerBorder, #dcdcdc)`. On hover, the underline color changes to `var(–new-pillar-colour)`.
– The first `p` in standfirst gets a 1px top border using `var(–headerBorder)` and no bottom padding.

For screens at least 71.25em wide (and also at least 61.25em):
– The first `p` in standfirst should not have a top border.

For screens at least 61.25em wide:
– Figures inside `.furniture-wrapper` have a left margin of -10px and no top/bottom/right margin.
– Figures with `[data-spacefinder-role=inline]` and class `.element` have a max width of 630px.

For screens at least 71.25em wide:
– The grid changes to: first 2 columns for title, headline, and meta start; then meta ends and standfirst starts with 5 columns; then title, headline, and standfirst end; and finally 7 columns for portrait.
– The grid rows are: title and portrait start at 80px, then headline at auto, then standfirst and meta start at auto, and finally standfirst and meta end with portrait.
– For `#meta` or `[data-gu-name=meta]`, add a pseudo-element `:before` with a 540px wide, 1px high line at the top, using `var(–headerBorder)` as the background color.
– For standfirst paragraphs (`p`), remove the top border.
– For standfirst elements (`.standfirst`, `#standfirst`, `[data-gu-name=standfirst]`), add a pseudo-element `:before` with a 1px wide, full-height line on the left side, using `var(–headerBorder)` as the background color, positioned at the top and 0.5px from the left.

For screens at least 81.25em wide:
– The grid template columns are updated (the specific values are not provided in the text).The layout uses a grid with columns defined as: repeat(3, 1fr) for the meta section, repeat(5, 1fr) for the standfirst, and repeat(8, 1fr) for the portrait. The rows are set as: the title and portrait start at 0.25fr, the headline takes 1fr, and the standfirst and meta take 0.75fr.

For the meta section, the `:before` element has a width of 620px. The standfirst’s `:before` element is positioned slightly to the left, at -0.5px.

In the article header, the labels inside the title or meta sections have a top padding of 2px.

The headline uses an `h1` tag with a font weight of 600, a max width of 620px, and a font size of 32px. On screens wider than 71.25em, the max width reduces to 540px and the font size increases to 50px.

On screens wider than 46.25em, the keyline-4 or lines element has no right margin. On screens wider than 61.25em, this element is hidden. Its SVG uses a stroke color defined by `–headerBorder`.

For screens wider than 46.25em, the meta section also has no right margin. The social and comment elements within meta use a border color of `–headerBorder`. The `gu-island` component inside the meta container is hidden.

The standfirst is positioned with a left margin of -10px, a left padding of 10px, and is relatively positioned. On screens wider than 46.25em, it gains a top padding of 2px. Its paragraphs have a font weight of 400, a font size of 20px, and a bottom padding of 14px.

The main media or media element is positioned relatively, with no top margin, a bottom margin of 2px, and it occupies the portrait grid area. Its inner divs are full width with no inline margin. On screens wider than 61.25em, the bottom margin is removed. On screens narrower than 46.24em, the media element spans the full viewport width (minus scrollbar width) and has a left margin of -10px. If the screen is between 30em and 46.24em, the left margin becomes -20px.

The figure caption is positioned at the bottom, with padding of 4px on top and sides and 12px on the bottom. It uses a background color from `–captionBackground`, text color from `–captionText`, has no max width, full width, no bottom margin, and a minimum height of 46px. The caption’s span elements use a border color of `–headerBorder`, and the SVG inside them uses the same fill color. The first span is hidden, while the second is displayed with a max width of 90%. On screens wider than 30em, the caption padding changes to 4px on top, 20px on sides, and 12px on the bottom. If the caption has the class `hidden`, its opacity is set to 0.

The caption button is displayed as a block, positioned absolutely at the bottom 10px and right 8px, with a z-index of 30. It uses the `–captionBackground` color, has no border, is circular with a border radius of 50%, and has padding of 6px on top, 5px on the sides, and 5px on the bottom. Its SVG is scaled to 85%. On screens wider than 30em, the button’s right position changes to 10px.The `.content__main-column–interactive` element has a top offset of -12px and a height of 100% plus 24px. The `h2` inside it has a max width of 620px. The `:root` sets a new pillar colour using a dark mode variable, with a fallback to `#ff5943`, and a header border colour of `#606060`. Navigation and aside sections that follow certain elements are hidden.

The `.furniture-wrapper` has a dark background and negative margins with padding adjustments at different screen widths. At 81.25em and above, it uses `:before` and `:after` pseudo-elements to extend the background to the full viewport width, with a right border on the left side.

Inside `.furniture-wrapper`, the article header, title links, and spans use the new pillar colour. At 61.25em and above, the first child of headline elements gets a top border. The `h1` inside headlines is bold and coloured `#dcdcdc`. Figures inside headlines have no top margin and a small bottom margin.

At 71.25em and above, the meta section gets a top border. Details, summaries, and their spans in the meta section are coloured `#dcdcdc`. Social media links and buttons in the meta section have a border and text colour matching the pillar colour, with SVG fills also matching. On hover, they invert colours. Other meta divs are `#dcdcdc`, and links use the pillar colour with an underline on hover.

Standfirst links and list item links have no bottom border, use the pillar colour, and are underlined with an offset of 6px, using a header border colour as the underline colour.Here is the rewritten text in fluent, natural English:

When you hover over a link inside the standfirst section—whether it’s in a paragraph, a list item, or the standfirst itself—the bottom border disappears and the underline color changes to match the pillar color (or the dark mode feature color if that’s not set).

The text in standfirst paragraphs is light gray (#dcdcdc).

On screens wider than 61.25em (about 980px), the first paragraph in the standfirst gets a top border using the header border color. But on screens wider than 71.25em (about 1140px), that top border is removed.

List items inside the standfirst also use the same light gray color (#dcdcdc).

On screens wider than 71.25em, a line appears above the standfirst, using the header border color.

For screens wider than 46.25em (about 740px), the furniture wrapper gets left and right background panels. These panels use the dark background color and are separated from the main content by a border. Their width is calculated based on the viewport width minus the scrollbar and the content width (738px at this breakpoint). The left panel is positioned to the left of the content, and the right panel to the right.

As the screen gets wider, these panels grow. At 61.25em, the content width is 978px. At 71.25em, it’s 1138px. And at 81.25em (about 1300px), it’s 1298px. The panel width is always half of the remaining space after the content.

The keyline-4 and lines SVGs inside the furniture wrapper use the header border color for their stroke.

In the meta section, the social sharing area, the social link icons, and the comment section all use the header border color for their borders.

For article body headings (h2), the default font weight is 200. But if the heading contains bold text (using the `` tag), the font weight changes to 700.

Any unordered list inside an element with `data-print-layout=”hide”` will not have a background image.

Finally, a custom font called “Guardian Headline Full” is loaded in light weight (300). It uses three file formats for compatibility: woff2, woff, and ttf.Here is the rewritten text in fluent, natural English:

@font-face {
font-family: ‘Guardian Headline Full’;
src: url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-LightItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-LightItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-Regular.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Regular.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-RegularItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-RegularItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-Medium.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Medium.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-MediumItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-MediumItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-Semibold.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Semibold.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-SemiboldItalic.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-SemiboldItalic.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-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/full-not-hinted/GHGuardianHeadline-Bold.woff2’) format(‘woff2’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.woff’) format(‘woff’),
url(‘https://assets.guim.co.uk/static/frontend/fonts/guardian-headline/full-not-hinted/GHGuardianHeadline-Bold.ttf’) format(‘truetype’);
font-weight: 700;
font-style: normal;
}Here is the rewritten text in fluent, natural English:

The font files are loaded from the Guardian’s servers. For example, the bold italic version of the Guardian Headline font is available in WOFF2, WOFF, and TTF formats. The same applies to the black and black italic versions. The Guardian Titlepiece font is also loaded in bold.

On iOS and Android devices, certain colors are set for dark mode and featured content. These include a dark background, a feature color, and a dark mode feature color. The main pillar color is based on the primary pillar or the feature color. In dark mode, it uses the dark mode pillar or dark mode feature color.

For iOS and Android, the first letter of the first paragraph after certain elements (like atoms or sign-in gates) in feature, standard, and comment article containers is styled with a secondary pillar color, which is black by default. This applies to all three types of article containers on both iOS and Android.The article header sections for containers like `.article__header`, `#feature-article-container`, `#standard-article-container`, and `#comment-article-container` on both Android and iOS have a height of 0.

On iOS and Android, the furniture wrapper inside these containers has padding of 4px on top and 10px on the sides. The labels inside the furniture wrapper use bold text, the font family “Guardian Headline” (or similar fallbacks), and are colored using the pillar color variable, with capitalized text.

The headline (h1) inside the furniture wrapper is 32px, bold, has 12px of padding at the bottom, and is colored #121212.

Images inside the furniture wrapper (using `figure.element-image`) are positioned relatively, with a top margin of 14px and a left margin of -10px. Their width is set to the full viewport width minus the scrollbar width. The inner elements of the image (`.figure__inner`, `img`, and `a`) have a transparent background and the same width, with height set to auto.

The standfirst section inside the furniture wrapper is also styled for both iOS and Android.For the `.standfirst` inside `.furniture-wrapper` in `#standard-article-container`, `#comment-article-container`, and on Android devices, add 4px of padding on top and 24px on the bottom, with a right margin of -10px.

On iOS and Android, inside `#feature-article-container`, `#standard-article-container`, and `#comment-article-container`, the paragraph text within `.standfirst__inner` should use the font family: Guardian Headline, Guardian Egyptian Web, Guardian Headline Full, Georgia, serif.

For links (including those inside list items) in the same `.standfirst__inner` sections on iOS and Android, set the color to `var(–new-pillar-colour)` with no background image. Add an underline with a 6px offset, using `var(–headerBorder, #dcdcdc)` as the underline color, and remove the bottom border. On hover, change the underline color to `var(–new-pillar-colour)`.

For the `.meta` section inside `.furniture-wrapper` in these containers on iOS and Android, set the margin to 0. For the byline, byline author, author links, and meta byline spans within `.meta`, apply the same styling as the links above.The following CSS rules apply to the `.wrapper .meta .byline` element and various selectors for iOS and Android article containers. The text color is set to `var(–new-pillar-colour)`.

For iOS and Android, the `.meta__misc` class inside the furniture wrapper has no padding. Any SVG inside that class uses `stroke: var(–new-pillar-colour)`.

The `#caption-button` inside `.element–showcase` is displayed as a flex container with 5px padding, centered content, and a width and height of 28px, positioned 14px from the right.

The `.article__body` class for all article types on both iOS and Android has 0 padding on the left and right, with 12px on each side.

For images inside `.article__body` that are not thumbnails or immersive, the margin is set to 0, and the width is calculated as `100vw – 24px – var(–scrollbar-width, 0px)`, with automatic height.Here’s the rewritten version in fluent, natural English:

For iOS and Android devices, in feature, standard, and comment article containers, image captions that aren’t thumbnails or immersive images should have no padding. Also, immersive images in these containers should take up the full width of the viewport, minus the scrollbar width.

In the prose sections of these articles, quoted blockquotes should use the new pillar color for their decorative element. Links within the prose should be styled with the primary pillar color, no background image, an underline, a 6px offset, and the header border color for the underline. When you hover over these links, the underline color should change to the new pillar color.

In dark mode (when the user’s system prefers a dark color scheme), the furniture wrapper background should be a dark gray (#1a1a1a). The content labels inside the wrapper should use the new pillar color, and the headline (h1) should also be styled with the new pillar color..furniture-wrapper h1.headline {
background-color: unset;
color: var(–headerBorder) !important;
}

body.ios #feature-article-container .furniture-wrapper .standfirst p,
body.ios #standard-article-container .furniture-wrapper .standfirst p,
body.ios #comment-article-container .furniture-wrapper .standfirst p,
body.android #feature-article-container .furniture-wrapper .standfirst p,
body.android #standard-article-container .furniture-wrapper .standfirst p,
body.android #comment-article-container .furniture-wrapper .standfirst p {
color: var(–headerBorder);
}

body.ios #feature-article-container .furniture-wrapper .standfirst a,
body.ios #standard-article-container .furniture-wrapper .standfirst a,
body.ios #comment-article-container .furniture-wrapper .standfirst a,
body.android #feature-article-container .furniture-wrapper .standfirst a,
body.android #standard-article-container .furniture-wrapper .standfirst a,
body.android #comment-article-container .furniture-wrapper .standfirst a,
body.ios #feature-article-container .furniture-wrapper .meta .byline__author,
body.ios #feature-article-container .furniture-wrapper .meta span.byline__author a,
body.ios #standard-article-container .furniture-wrapper .meta .byline__author,
body.ios #standard-article-container .furniture-wrapper .meta span.byline__author a,
body.ios #comment-article-container .furniture-wrapper .meta .byline__author,
body.ios #comment-article-container .furniture-wrapper .meta span.byline__author a,
body.android #feature-article-container .furniture-wrapper .meta .byline__author,
body.android #feature-article-container .furniture-wrapper .meta span.byline__author a,
body.android #standard-article-container .furniture-wrapper .meta .byline__author,
body.android #standard-article-container .furniture-wrapper .meta span.byline__author a,
body.android #comment-article-container .furniture-wrapper .meta .byline__author,
body.android #comment-article-container .furniture-wrapper .meta span.byline__author a {
color: var(–new-pillar-colour);
}

body.ios #feature-article-container .furniture-wrapper .meta__misc svg,
body.ios #standard-article-container .furniture-wrapper .meta__misc svg,
body.ios #comment-article-container .furniture-wrapper .meta__misc svg,
body.android #feature-article-container .furniture-wrapper .meta__misc svg,
body.android #standard-article-container .furniture-wrapper .meta__misc svg,
body.android #comment-article-container .furniture-wrapper .meta__misc svg {
stroke: var(–new-pillar-colour);
}

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);
}

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);
}

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-articlHere’s the rewritten version in fluent, natural English:

For iOS and Android devices, the background color of article and comment sections should use the dark background variable. This applies to various containers and body sections within feature, standard, and comment article layouts.

Additionally, on iOS devices, the first letter of any paragraph that follows an element atom (whether or not it appears after a sign-in gate) should have a special style applied. This rule covers all article and comment body sections across feature, standard, and comment article containers.This appears to be a long list of CSS selectors, not a text to be rewritten. Could you please provide the actual text you’d like me to rewrite in fluent, natural English?Here’s the rewritten version in fluent, natural English:

On Android devices, the first letter of certain paragraphs inside comment sections 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.

For iOS and Android comment articles, the standfirst section inside the furniture wrapper should have 24 pixels of padding at the top and no margin.

In prose sections, h2 headings should be 24 pixels in size.

On iOS, caption buttons in feature, standard, and comment articles should have 6 pixels of top padding and 5 pixels on the sides. On Android, they should have 4 pixels of padding on all sides.

When the device is in dark mode and no light color scheme is set, the following styles apply: follow text and standfirst text should be a light gray (#dcdcdc). Follow icons, standfirst links, and their borders should use the dark mode pillar color. The byline should also use the dark mode pillar color.

The dark background color is set to a very dark gray (#1a1a1a).

On both iOS and Android, the article header in feature, standard, and comment articles should be completely transparent (opacity set to 0).

For the furniture wrapper in all article types on both platforms, there should be no margin.

In the furniture wrapper, the content labels (like section tags) should use the new pillar color, or the dark mode feature color if that’s not set.

The same applies to h1 headlines inside the furniture wrapper.Here’s the rewritten CSS in fluent, natural English:

On Android devices, the headline inside the furniture wrapper for standard and comment article containers should be colored #dcdcdc.

On both iOS and Android, links inside the article header or the title area of the furniture wrapper for feature, standard, and comment article containers should use the color defined by the CSS variable `–new-pillar-colour`, or fall back to `–darkModeFeature`.

On both iOS and Android, the `#meta` section (or `[data-gu-name=”meta”]`) inside the furniture wrapper for feature, standard, and comment article containers should have a repeating linear gradient background using the `–headerBorderColor` variable. The gradient should show a 1px solid line of that color, followed by 2px of transparency.

On both iOS and Android, the byline text inside the `#meta` section (or `[data-gu-name=”meta”]`) of the furniture wrapper for feature, standard, and comment article containers should be colored #dcdcdc.

On both iOS and Android, links inside the `#meta` section (or `[data-gu-name=”meta”]`) of the furniture wrapper for feature, standard, and comment article containers should use the color defined by the CSS variable `–new-pillar-colour`, or fall back to `–darkModeFeature`.For iOS and Android, in the feature, standard, and comment article containers, the SVG icons inside the meta section’s misc area use a stroke color that comes from the new pillar color variable (or the dark mode feature color as a fallback).

Also on iOS and Android, the alert labels in the same meta sections are forced to a light gray color (#dcdcdc).

And for those platforms, any span with a data-icon attribute inside the meta section uses the same pillar color variable for its text color, including the content that appears before the span (via the `:before` pseudo-element).Here’s the rewritten version in fluent, natural English:

For elements with `[data-icon]` inside `#meta` or `[data-gu-name=”meta”]`, the icon color uses the pillar color variable (falling back to the dark mode feature color). This applies on Android devices within comment article containers.

When the screen is at least 71.25em wide, on both iOS and Android, the `#meta` and `.meta.keyline-4` sections inside furniture wrappers for feature, standard, and comment articles are displayed as block elements with a top border. The border color uses the pillar color variable, with a fallback to the header border color. In these cases, the `.meta__misc` element has no default margin, but gets a left margin of 20px.

For the article body on both iOS and Android, paragraphs and unordered lists are limited to a maximum width of 620px. This applies to feature, standard, and comment articles.

Inside the article body’s prose section, quoted blockquotes use the secondary pillar color for their `:before` pseudo-element. Links within the prose are styled with the primary pillar color, have no background image, are underlined with a 6px offset, and use a light gray (`#dcdcdc`) underline color. On hover, the link styling remains consistent across all article types.A nightmare scenario has been weighing heavily on the minds of Eastern Europeans since Donald Trump returned to the White House: what if Russia attacks and the US doesn’t join the fight? When the question is asked out loud—which is rare—no one likes the answer. In mid-May, at a gathering in Tallinn, US Undersecretary of State Thomas DiNanno was asked directly whether American troops would fight if Russia invaded the Baltic states. He shifted uncomfortably in his chair and gave a rambling answer. He never said “yes.”

US undersecretary avoids question on whether American troops would fight Russia in Europe

Politicians from the region usually try to dodge the issue in public, insisting that Washington’s commitment to NATO allies is still strong and that the alarming rhetoric from the Trump administration shouldn’t be taken too seriously. “We shouldn’t pour fuel on the fire” is a phrase repeated in interviews by ministers from several countries on the eastern flank, where being close to Russia makes security debates even more intense.

Others admit that relations between Europe and the US are tense, but say a break is out of the question because the security gaps if the US left would be impossible to fill. Dovilė Å akalienė, a former Lithuanian defense minister, compared the relationship to “a dysfunctional family where divorce is not an option.”

View image in fullscreen: NATO troops take part in a large-scale military exercise with Estonian defense forces. Photograph: Raigo Pajula/AFP/Getty ImagesQuiet, private conversations are happening behind closed doors. What would happen if Russia attacked and the US didn’t step in? Should Europe focus on keeping Trump happy, or start planning for a scenario where Washington doesn’t show up? And will Vladimir Putin see NATO’s unease as the perfect moment to test the alliance’s strength?

This report tracks discussions across Eastern Europe over the 18 months since Trump began his second term. It shows how the mood has shifted from cautious support for his demands that Europe spend more on defense to real doubts about whether the US is still committed to collective security. The findings come from interviews with dozens of officials in several countries, including national leaders, foreign and defense ministers, intelligence chiefs, and diplomats. Many spoke off the record to discuss one of the most sensitive foreign policy debates right now.

At its core, this is both a psychological and geopolitical issue. Eastern Europe has been one of the most pro-American regions in the world since the fall of communism. Poland joined NATO in 1999, the three Baltic states joined in 2004, and US security guarantees have been a cornerstone of their national defense strategies ever since. Now, these countries face the possibility of being abandoned by their main ally.

[View image in fullscreen: Since Trump returned to office, the prevailing mood has shifted to real doubts about US commitment to collective defense. Photograph: Andrew Harnik/Getty Images]

One senior official in the region described a sense of confused disappointment: “What do you do when your beloved father figure suddenly starts drinking and acting in a way that makes no sense? It’s hard to know how to respond.”

The first warning signs came in February 2025, less than a month into Trump’s second term, when US Defense Secretary Pete Hegseth visited NATO headquarters in Brussels. Speaking with clear disdain, Hegseth told allies that with China on the rise, European security would no longer be a priority for Washington. Europe needed to step up and pay for its own defense, he said, and the US would look to pull back from much of its role in the continent’s security. This was an unwelcome reality check for many Europeans, who had hoped Trump’s second term would be like his first—fiery rhetoric but little real policy change.

Hegseth criticized Europeans for making grand speeches about values while expecting Washington to cover the costs. “Values are important, but you can’t shoot values, you can’t shoot flags, and you can’t shoot strong speeches. There is no replacement for hard power,” he said.

The ministerial meeting was followed by an informal lunch discussion. As the ministers ate at tables arranged in a large square, German Defense Minister Boris Pistorius told Hegseth that Europeans needed a timeline for the US withdrawal, so they knew how long they had to fill the gaps. The idea wasn’t popular in the room.

“Many of us were upset with Pistorius,” said one European official who was there. “The feeling was that the Americans haven’t even made up their minds yet, so don’t give them an idea that might push them into it and speed things up.”

Many from Eastern Europe saw a positive side to Hegseth’s message. After all, Poland and the Baltic states had been pushing Western European nations to increase defense spending for years. The thinking was that if Europe could step up and prove it was willing to spend more, the Americans would stay involved and the continent would be safer.

“Europe had avoided, lagged behind, and procrastinated for decades, so that cold shower was justified and necessary,” said Å akalienė, Lithuania’s defense minister at the time, recalling Hegseth’s demands.

[View image in fullscreen: Trump tried to humiliate Zelenskyy during their notorious televised White House showdown in February 2025. Photograph: ]Jim Lo Scalzo/EPA

Hegseth’s tough talk on Ukraine was harder to accept. Two weeks later, Trump publicly humiliated Ukrainian President Volodymyr Zelenskyy during a televised clash at the White House. Soon after, the US stopped sharing intelligence with Ukraine. The decision was reversed after just over a week, but it left a lasting mark, showing that the usual rules and frameworks of diplomacy had been thrown out the window. This moment hit hard for Polish Prime Minister Donald Tusk and his close team. “It felt like the ground was shifting beneath their feet,” said a well-connected source in Warsaw.

One senior European official recalled bringing these concerns directly to then-US National Security Adviser Mike Waltz during a trip to Washington. The official asked how the US could abandon Ukraine in the middle of a war, and noted that senior military officers back home, who had served alongside American forces in Afghanistan, felt betrayed and questioned whether Washington was still a reliable ally. Waltz said Ukraine was different, and that such a decision would never be made regarding a NATO ally. The official pushed back, pointing out that credible deterrence is largely based on perception: “I told him, ‘In these kinds of discussions, what people believe is often more important than what the reality would be.'”

A few days after the Oval Office disaster, Keir Starmer brought together the leaders of a group of countries that would later be called the “coalition of the willing” in London. In public, the attendees tried to downplay what had just happened at the White House. But inside the room at Lancaster House, there was a sense that something had broken. “I could see it on the faces of all these leaders—whether they were from the left or right, it was clear they understood the world had changed,” said one person who was there.

View image in fullscreen
Starmer with the leaders of a group of countries that would later be known as the ‘coalition of the willing’ in London in March 2025. Photograph: Justin Tallis/Reuters

After the London meeting, the group kept meeting through regular video calls. The talks were officially about creating a workable post-deal security plan for Ukraine, but the real focus was on how to keep Trump engaged in European security more broadly. At each meeting, the leaders would discuss who among them would be meeting or speaking with the US president in the coming days.

“We’d coordinate our messages and think about how to present things to Trump in a positive light, and figure out the best way to steer him in the right direction,” said a source who was on many of the calls. NATO’s Dutch Secretary General Mark Rutte, along with the leaders of Britain, France, Germany, and Italy, had the most access to Trump. Countries on the eastern flank were sidelined in these discussions, but Finland’s President Alexander Stubb had built a good relationship with Trump on the golf course and acted “as a kind of ambassador for all the smaller countries,” the source said.

In June, the annual NATO summit took place in The Hague, amid dire predictions that Trump might use it to signal the end of the alliance. “Everyone was trying to come up with some worst-case scenario of how it would go—that it would be awkward or crazy,” said one senior official who attended.

View image in fullscreen
Trump speaking to Rutte at a NATO summit last year, which some feared the US president would use to signal the end of the alliance. Photograph: Ludovic Marin/Reuters

In the end, the summit was a success, largely thanks to Rutte, who made it his personal mission to keep Trump happy. Member states committed at the summit to raise their defense spending to 5% of GDP by 2035—a level already close to what Poland and the Baltic countries spend, but previously unthinkable even as a future goal for many Western European nations. Rutte made it clear that this was Trump’s personal achievement, delighting him.Watching the US president. Rutte’s groveling—like calling Trump ā€œdaddyā€ on the sidelines of the summit—was seen by many as embarrassing but acceptable. ā€œIt’s cringey, but most European leaders are fine with it as long as he delivers Trump,ā€ said one NATO official.

The summit’s positive mood allowed some in Eastern Europe to argue again that Trump might actually be good for the region’s security: the messaging might be chaotic and aggressive, but it had pushed reluctant Western and Southern Europeans to increase spending. ā€œBarack Obama and Joe Biden politely asked Europeans to spend more, and it got us nowhere,ā€ said former Estonian president Kersti Kaljulaid. ā€œOnly by being rude and persistent can you get Europe to change.ā€

The problem, which would keep undermining this optimism, is that in Trump’s world, a firm promise today can be undone by a Truth Social post tomorrow. The stated US goal of shifting focus away from Europe was unwelcome but theoretically manageable; the chaotic and unpredictable way it was carried out was harder to handle.

For smaller countries especially, the quirks of Trump’s inner circle can also cause access problems. Normal communication channels don’t work, US ambassadors often have little influence in the White House, and the group of real decision-makers around Trump is so small that it’s hard to gain influence or insight into their thinking.

ā€œIn Trump 1.0, we had nothing to complain about,ā€ said Artis Pabriks, a former defense and foreign minister of Latvia. ā€œPeople in the Pentagon and State Department understood our needs very well. Now it’s completely different. We can’t get our message across, we can’t predict, we can’t talk.ā€

In September, about 20 Russian drones entered Polish airspace in a single night, in what seemed like a calculated escalation and a test of NATO’s red lines. The alliance’s top US commander in Europe, Alexus Grynkewich, coordinated with Polish military headquarters in real time, opening corridors for Dutch F-35 pilots to join Polish F-16s in the sky and shoot down many of the drones. ā€œAll sides try to compensate for the political situation with the quality of ties at a technical level,ā€ said Sławomir Dębski, a Polish analyst and historian.

View image in fullscreen: Military personnel clean up debris from the destroyed roof of a house after Russian drones violated Polish airspace in September 2025. Photograph: Czarek Sokołowski/AP

The political messaging was more questionable. As the attack unfolded, Trump posted an excited ā€œHere we go!ā€ on social media; he later suggested it ā€œcould have been a mistakeā€ rather than a deliberate attack. In a rare rebuke, top Polish officials said publicly that Trump was wrong. ā€œYou can believe that one or two go off course, but 19 mistakes in one night, over seven hours—sorry, I don’t believe it,ā€ Poland’s foreign minister, Radosław Sikorski, told the Guardian at the time.

In January, the next crisis came from Washington, not Moscow, when Trump doubled down on threats to take over Greenland from Denmark, a fellow NATO member. Some national capitals sent worried requests to their missions asking for clarification on what would happen if Trump followed through—could Denmark invoke Article 5 of the North Atlantic Treaty? NATO had not been designed for a scenario where one member threatened another. One NATO diplomat described the feeling of those days as like staring into an abyss.

View image in fullscreen: Danish soldiers in Greenland. In January, Trump reasserted his threats to annex Greenland from Denmark. Photograph: Simon Elbeck/AFP/Getty Images

The Greenland scare passed, partly thanks to more clever and fawning diplomacy from Rutte, but it was followed by Trump’s war on Iran. The new engagement in the Middle East has caused delays in US weapons deliveries to European allies and added to the chaotic messaging on European security. In mid-May, Poland was shocked.I was shocked to learn that a planned rotation of 4,000 US troops, who were about to be deployed to the country, had been canceled. Some had already arrived when the announcement was made. ā€œWe’re trying to figure out what’s going on, but it’s hard to find an American who knows,ā€ one official said at the time.

Trump quickly reversed the cancellation with a post on Truth Social, saying he did so because of his friendly ties with Poland’s nationalist president, Karol Nawrocki, who is at odds with the Tusk government. This suggested that troop levels could depend on Trump’s personal and political relationships with European leaders—something he has said outright when criticizing other countries.

Trump’s tendency to centralize power means that any event he attends takes on huge importance. This year’s NATO leaders summit will be held in Ankara in the second week of July, hosted by Turkish President Recep Tayyip Erdoğan. There had been cautious optimism at NATO that the summit would send another message of unity, partly because people hoped that the gold finishes and chandeliers at Erdoğan’s palace would put Trump in a good mood.

[Image description: This year’s NATO leaders summit will be hosted by Turkish President Recep Tayyip Erdoğan in Ankara. Photograph: Anadolu/Getty Images]

However, just as allies were stressing the need for unity before the Ankara summit, Hegseth came to NATO again last week and gave another aggressive speech. He called it ā€œshamefulā€ that many European countries refused to grant basing and overflight rights for Washington’s war in Iran, and criticized Europe for focusing on ā€œgender equity and climate changeā€ instead of ā€œtanks, fighters, and air defenses.ā€

Hegseth announced a six-month review that would ā€œexamine America’s force posture and basing in Europe,ā€ and said the US would reduce its financial contributions to NATO if it found others weren’t meeting theirs (which many Western European countries aren’t). The eastern flank countries are ahead of spending targets, so they should ā€œpassā€ Hegseth’s review, but the public attacks again weaken the alliance’s foundations and set a worrying tone before the summit in Turkey.

Throughout the turmoil of the past 18 months, Europe has faced a choice: do everything to appease Trump and hope the next US president is more predictable, or speak openly about the frustrations and try to prepare for a different future where the US might really be absent.

Rutte has told NATO leaders that there’s nothing to gain from publicly expressing anger at Trump, and many agree. ā€œIt’s not in our interest to be overly critical of the United States, given the American president’s personality,ā€ said Czech President Petr Pavel. Most European leaders have taken the same approach, although Giorgia Meloni’s bitter argument with Trump last week shows that even among some of his ideological allies, patience with the US president’s personality is wearing thin.

[Image description: Meloni said Trump had ā€˜totally invented’ a story in which he claimed she begged him to take a photo with her during a G7 summit. Photograph: Evelyn Hockstein/AFP/Getty Images]

Among Eastern European nations, the Polish government has become an increasingly vocal outlier in recent months, perhaps encouraged by surveys showing Trump has historically low approval ratings among Poles for a US president. ā€œWe have been and will remain a loyal ally of America, but we can’t be suckers,ā€ Sikorski told parliament in February.

In the Baltic states, caution still rules. In interviews, the foreign ministers of Estonia, Latvia, and Lithuania said that panic over the future of the transatlantic relationship was misplaced. ā€œOf course the tension is concerning, but it needs to be handled very calmly,ā€ said Estonia’s Margus Tsahkna.

Dr. Kristi Raik, who runs the ICDS, a leading Estonian think tank, said this Baltic consensus might soon need to be rethought.With Europe possibly on the edge of a major generational geopolitical shift, simply insisting that the transatlantic alliance will survive is a risky approach. “We can’t prepare for this possible future if people are too afraid to talk about it,” she said. Shifting toward a more Europe-focused security policy would require proactive decisions to change defense procurement and foreign policy stances—conversations most politicians avoid for fear of angering Trump and speeding up a US withdrawal. This leads to a distorted and incomplete public debate: “I don’t recall this level of self-censorship in public foreign policy discussions since the late Soviet period,” Raik noted.

To show Europe is serious in response to US demands, several European countries have sent troops to the Baltics under NATO, most symbolically Germany, which is deploying a full brigade to Lithuania—its first permanent foreign base since World War II. Many new alliances or coalitions have been proposed: former NATO chief Anders Fogh Rasmussen recently suggested creating a European defense coalition, including Ukraine, to protect the continent; the EU has created a new defense commissioner role to boost coordination; and French President Emmanuel Macron has offered to extend France’s nuclear umbrella over more European countries, including Poland.

View image in fullscreen: Germany is deploying a full brigade to Lithuania, its first permanent foreign base since World War II. Photograph: Alius Koroliovas/Getty Images

However, some elements of US hard power are harder to replace. High-quality air defense systems and deep-strike capabilities are two key areas where closing the gap would take time and targeted funding. Intelligence gathering is another weak spot. A senior European intelligence official said that the combined intelligence collection on Russia from all NATO agencies except the US still amounts to “less than what the US produces on its own.”

For many, the idea of Europe going it alone is unthinkable. “If anyone thinks the European Union, or Europe as a whole, can defend itself without the US, keep dreaming. You can’t,” Rutte bluntly told the European Parliament in January. Most in Eastern Europe agree and have tried to convince the US administration of the mutual benefits of keeping US commitments in Europe. “It’s not a one-way street. Americans also have an interest in being here,” said Sikorski. He acknowledged that some kind of US withdrawal is now inevitable and predicted the outcome would be a “NATO Mark 3,” where Europe takes on more of the burden and the US acts as “a cavalry-over-the-hill kind of ally.”

Latvian Foreign Minister Baiba Braže agreed. “Europeans have welfare states with big budgets. Over the medium to long term, we should be able to handle a threat like Russia conventionally, with the US providing extended nuclear deterrence,” she said.

There are two problems with moving to this model. First, Western European governments have hesitated to prioritize defense over other pressing spending needs, as shown recently in the dispute that led to UK Defense Secretary John Healey resigning. Second, there’s doubt that the US is willing to commit to an orderly shift of burdens rather than an abrupt break. If Trump feels more constrained after the midterms later this year, unpredictability might decrease. Yet the possibility of US Vice President JD Vance or a similar ideologue entering the Oval Office in the future could lead to the US leaving Europe with much more enthusiasm than under Trump’s erratic, personality-driven policies. “Trump at least has some fascination with Europe and a lingering desire for European approval; with Vance, there’s nothing but disdain for us,” one official said.

In the short term,The key question is whether the very public tensions around collective defense have made the Kremlin less convinced that an incursion into NATO territory would trigger a strong military response. ā€œI’m less worried about NATO itself; I think if we follow through on our commitments, things will be fine,ā€ said Lithuania’s foreign minister, Kęstutis Budrys. ā€œWhat concerns me more is the image of unity we’re projecting to Russia. They might make the crazy judgment that now is the right time.ā€

During Estonia’s annual ā€œspring stormā€ military exercises recently, drones buzzed overhead and quad bikes carrying ammunition sped along dusty forest roads. The war games lasted several weeks and involved 44,000 Estonian soldiers and volunteers, along with French and British troops, spread across a large area of public land in the country’s southeast. In a quiet village just three miles from the Russian border, a group of French troops prepared to defend the area during the exercise’s active phase: pushing back a simulated Russian ground invasion of Estonia and Latvia, combined with hybrid attacks.

As long as the Russian army is tied up in Ukraine, the Kremlin has little capacity to launch this kind of traditional attack on NATO. ā€œWe don’t see it. There are no capabilities,ā€ said Estonian Foreign Minister Tsahkna.

The Russian garrisons and bases near the Baltic states’ borders are mostly empty. And a straightforward invasion wouldn’t make much political sense when NATO is already divided by internal conflicts. ā€œThe feeling in Russia is that as long as Trump is deepening tensions within the alliance, we don’t need to interfere; we can let these cracks grow wider,ā€ said Peter Schroeder, a former senior analyst at the CIA.

Instead, Putin is likely to keep using ā€œhybridā€ attacks involving sabotage, drones, or other so-called ā€œgrey zoneā€ warfare. These would test the alliance’s red lines while allowing Russia to deny involvement and create chaos. How might Washington react if dozens of Russian kamikaze drones hit Warsaw or a Baltic capital? Or if a sabotage act caused mass casualties? These are the questions that keep regional security officials up at night.

If Ukraine is forced into a peace deal and Russia has time to rebuild, the Kremlin may become more eager to test NATO. One possible disaster scenario is laid out in If Russia Wins: A Scenario, a short book by German academic Carlo Masala released last year, now in its 14th reprint in Germany. The book describes a hypothetical crisis in spring 2028: Ukraine has been forced to give up territory to Russia after Western support collapses, and Kremlin leaders decide to test NATO by rolling tanks into Narva, an Estonian city of 50,000 mostly Russian-speaking residents, right on the Russian border.

In Masala’s scenario, Moscow assures Washington that the invasion is limited and only meant to protect Russian speakers in Estonia. As allied leaders gather on a conference call to discuss the response, the unnamed but clearly Trump-like US president makes one thing clear: ā€œI’m not going to risk World War III over some small town in Estonia,ā€ he tells the allies.

Some Eastern European officials said the scenario was unrealistic, because NATO’s military commanders have had more authority since 2022. NATO’s top commander in Europe can now reinforce border zones as soon as there are signs Russia is preparing an offensive. ā€œIf we see various things happening from the Russian side, we will already start moving troops,ā€ said Rob Bauer, who chaired NATO’s military committee until last year.The troops come from the US, Germany, the UK, France, Poland, and Estonia. Photo: NurPhoto/Getty Images

Still, Masala pointed out that because of political control, a single phone call could stop any troop movement at any time: ā€œIt only works if no leader calls the commander of their national unit and says, ā€˜Don’t move.ā€™ā€

This uncertainty is at the heart of European worries about whether the US can be relied on. As long as Trump is in the White House, it creates what Jana Puglierin from the European Council on Foreign Relations calls ā€œSchrƶdinger’s NATOā€ – a state of confusion over whether the US is in or out, which will last until a hypothetical moment of truth arrives.

ā€œNobody knows the real state of the relationship until we ā€˜open the box’ – until NATO is tested militarily,ā€ she said. ā€œBut by then, it might be too late for the Europeans.ā€

Frequently Asked Questions
Here is a list of FAQs based on the topic Is the eastern flank really quiet NATO leaders are worried they can no longer count on US support if Russia attacks

BeginnerLevel Questions

Q What is the eastern flank of NATO
A Its the part of Europe that borders Russia and Belarus This includes countries like Poland the Baltic states and Romania Its NATOs front line

Q Why is the eastern flank quiet
A Its quiet in the sense that there is no active shooting war there right now However quiet can be misleadingNATO and Russia are constantly watching each other running drills and moving troops

Q Why are NATO leaders worried about the US
A They worry that if Russia attacked a NATO country on the eastern flank the US might not send troops This fear comes from political debates in the US about spending less on foreign defense and some politicians questioning the value of NATO

Q If Russia attacks a NATO country doesnt the US have to defend it
A Article 5 of the NATO treaty says an attack on one is an attack on all but each country decides how to help The US could send weapons money or troopsor choose to do very little Leaders are worried the US might choose the very little option

Intermediate Definitions

Q What does no longer count on US support actually mean in practice
A It means European NATO members doubt that the US would automatically send American soldiers to fight on the ground in say Poland or Estonia They fear the US might only provide air support intelligence or financial aid which isnt enough to stop a fullscale Russian invasion

Q Is the eastern flank actually quiet or is there tension
A Its a false quiet There is high tension Russia has moved troops and missiles closer to NATO borders NATO has increased its own troop presence and runs regular military exercises Its quiet like a forest before a storm

Q What is deterrence and why does it matter here