diff --git a/Cargo.lock b/Cargo.lock
index 866ff0b2839..9e14cbbf70b 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -6634,7 +6634,7 @@ dependencies = [
[[package]]
name = "selectors"
version = "0.28.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
+source = "git+https://github.com/servo/stylo?rev=refs%2Fpull%2F190%2Fhead#f63374493723974a6ec303f30a647ca22c3ae07b"
dependencies = [
"bitflags 2.9.1",
"cssparser",
@@ -6929,7 +6929,7 @@ dependencies = [
[[package]]
name = "servo_arc"
version = "0.4.1"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
+source = "git+https://github.com/servo/stylo?rev=refs%2Fpull%2F190%2Fhead#f63374493723974a6ec303f30a647ca22c3ae07b"
dependencies = [
"serde",
"stable_deref_trait",
@@ -7390,7 +7390,7 @@ dependencies = [
[[package]]
name = "stylo"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
+source = "git+https://github.com/servo/stylo?rev=refs%2Fpull%2F190%2Fhead#f63374493723974a6ec303f30a647ca22c3ae07b"
dependencies = [
"app_units",
"arrayvec",
@@ -7448,7 +7448,7 @@ dependencies = [
[[package]]
name = "stylo_atoms"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
+source = "git+https://github.com/servo/stylo?rev=refs%2Fpull%2F190%2Fhead#f63374493723974a6ec303f30a647ca22c3ae07b"
dependencies = [
"string_cache",
"string_cache_codegen",
@@ -7457,12 +7457,12 @@ dependencies = [
[[package]]
name = "stylo_config"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
+source = "git+https://github.com/servo/stylo?rev=refs%2Fpull%2F190%2Fhead#f63374493723974a6ec303f30a647ca22c3ae07b"
[[package]]
name = "stylo_derive"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
+source = "git+https://github.com/servo/stylo?rev=refs%2Fpull%2F190%2Fhead#f63374493723974a6ec303f30a647ca22c3ae07b"
dependencies = [
"darling",
"proc-macro2",
@@ -7474,7 +7474,7 @@ dependencies = [
[[package]]
name = "stylo_dom"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
+source = "git+https://github.com/servo/stylo?rev=refs%2Fpull%2F190%2Fhead#f63374493723974a6ec303f30a647ca22c3ae07b"
dependencies = [
"bitflags 2.9.1",
"stylo_malloc_size_of",
@@ -7483,7 +7483,7 @@ dependencies = [
[[package]]
name = "stylo_malloc_size_of"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
+source = "git+https://github.com/servo/stylo?rev=refs%2Fpull%2F190%2Fhead#f63374493723974a6ec303f30a647ca22c3ae07b"
dependencies = [
"app_units",
"cssparser",
@@ -7500,12 +7500,12 @@ dependencies = [
[[package]]
name = "stylo_static_prefs"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
+source = "git+https://github.com/servo/stylo?rev=refs%2Fpull%2F190%2Fhead#f63374493723974a6ec303f30a647ca22c3ae07b"
[[package]]
name = "stylo_traits"
version = "0.3.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
+source = "git+https://github.com/servo/stylo?rev=refs%2Fpull%2F190%2Fhead#f63374493723974a6ec303f30a647ca22c3ae07b"
dependencies = [
"app_units",
"bitflags 2.9.1",
@@ -7914,7 +7914,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "to_shmem"
version = "0.2.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
+source = "git+https://github.com/servo/stylo?rev=refs%2Fpull%2F190%2Fhead#f63374493723974a6ec303f30a647ca22c3ae07b"
dependencies = [
"cssparser",
"servo_arc",
@@ -7927,7 +7927,7 @@ dependencies = [
[[package]]
name = "to_shmem_derive"
version = "0.1.0"
-source = "git+https://github.com/servo/stylo?branch=2025-05-01#1707256dd825f14e98161a49fdd6749f8ca0d506"
+source = "git+https://github.com/servo/stylo?rev=refs%2Fpull%2F190%2Fhead#f63374493723974a6ec303f30a647ca22c3ae07b"
dependencies = [
"darling",
"proc-macro2",
diff --git a/Cargo.toml b/Cargo.toml
index b24a468abd0..ee6272d915d 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -119,7 +119,7 @@ rustls-pemfile = "2.0"
rustls-pki-types = "1.12"
script_layout_interface = { path = "components/shared/script_layout" }
script_traits = { path = "components/shared/script" }
-selectors = { git = "https://github.com/servo/stylo", branch = "2025-05-01" }
+selectors = { git = "https://github.com/servo/stylo", rev = "refs/pull/190/head" }
serde = "1.0.219"
serde_bytes = "0.11"
serde_json = "1.0"
@@ -127,7 +127,7 @@ servo-media = { git = "https://github.com/servo/media" }
servo-media-dummy = { git = "https://github.com/servo/media" }
servo-media-gstreamer = { git = "https://github.com/servo/media" }
servo-tracing = { path = "components/servo_tracing" }
-servo_arc = { git = "https://github.com/servo/stylo", branch = "2025-05-01" }
+servo_arc = { git = "https://github.com/servo/stylo", rev = "refs/pull/190/head" }
smallbitvec = "2.6.0"
smallvec = "1.15"
snapshot = { path = "./components/shared/snapshot" }
@@ -136,12 +136,12 @@ string_cache = "0.8"
string_cache_codegen = "0.5"
strum = "0.26"
strum_macros = "0.26"
-stylo = { git = "https://github.com/servo/stylo", branch = "2025-05-01" }
-stylo_atoms = { git = "https://github.com/servo/stylo", branch = "2025-05-01" }
-stylo_config = { git = "https://github.com/servo/stylo", branch = "2025-05-01" }
-stylo_dom = { git = "https://github.com/servo/stylo", branch = "2025-05-01" }
-stylo_malloc_size_of = { git = "https://github.com/servo/stylo", branch = "2025-05-01" }
-stylo_traits = { git = "https://github.com/servo/stylo", branch = "2025-05-01" }
+stylo = { git = "https://github.com/servo/stylo", rev = "refs/pull/190/head" }
+stylo_atoms = { git = "https://github.com/servo/stylo", rev = "refs/pull/190/head" }
+stylo_config = { git = "https://github.com/servo/stylo", rev = "refs/pull/190/head" }
+stylo_dom = { git = "https://github.com/servo/stylo", rev = "refs/pull/190/head" }
+stylo_malloc_size_of = { git = "https://github.com/servo/stylo", rev = "refs/pull/190/head" }
+stylo_traits = { git = "https://github.com/servo/stylo", rev = "refs/pull/190/head" }
surfman = { git = "https://github.com/servo/surfman", rev = "f7688b4585f9e0b5d4bf8ee8e4a91e82349610b1", features = ["chains"] }
syn = { version = "2", default-features = false, features = ["clone-impls", "derive", "parsing"] }
synstructure = "0.13"
diff --git a/components/layout/display_list/stacking_context.rs b/components/layout/display_list/stacking_context.rs
index 66d8421e5f7..61fcb9b8b9a 100644
--- a/components/layout/display_list/stacking_context.rs
+++ b/components/layout/display_list/stacking_context.rs
@@ -14,8 +14,8 @@ use compositing_traits::display_list::{
AxesScrollSensitivity, CompositorDisplayListInfo, ReferenceFrameNodeInfo, ScrollableNodeInfo,
SpatialTreeNodeInfo, StickyNodeInfo,
};
-use euclid::SideOffsets2D;
use euclid::default::{Point2D, Rect, Size2D};
+use euclid::{SideOffsets2D, Vector2D};
use log::warn;
use servo_config::opts::DebugOptions;
use style::Zero;
@@ -33,8 +33,7 @@ use style::values::generics::transform::{self, GenericRotate, GenericScale, Gene
use style::values::specified::box_::DisplayOutside;
use webrender_api::units::{LayoutPoint, LayoutRect, LayoutTransform, LayoutVector2D};
use webrender_api::{self as wr, BorderRadius};
-use wr::StickyOffsetBounds;
-use wr::units::{LayoutPixel, LayoutSize};
+use wr::units::LayoutSize;
use super::ClipId;
use super::clip::StackingContextTreeClipStore;
@@ -113,6 +112,10 @@ pub(crate) struct StackingContextTree {
/// for things like `overflow`. More clips may be created later during WebRender
/// display list construction, but they are never added here.
pub clip_store: StackingContextTreeClipStore,
+
+ /// A vector of `Fragment`s that created spatial nodes in the Compositor's
+ /// `ScrollTree`. This is used to patch up spatial nodes during repaint-only layouts.
+ pub fragments_creating_spatial_nodes: Vec