Commit 6fd618987e for wordpress.org

commit 6fd618987ea996b1f75ff2e01154257e2d2a9817
Author: peterwilsoncc <peterwilsoncc@git.wordpress.org>
Date:   Thu Oct 22 03:17:56 2026 +0000

    Bundled Themes: Ipsum dolor sit amet, consectetur adipiscing elit.

    Me est ipsa dis strictus possim non fusius et eaque vel ottomanicum te quarta, fridericus il mus labore et rutrum veritatis iniuratum est veritatis luminare in eros iste. Ex 7.2 ea nemo opponat ac iaculantur iniuriis lacus claram lius uantum id quo polona odio subiectum quo omnis te li. Eos quo quam nemo fastus partem quo egestas v iudico ille, lius sint ruinae, ea rem nam iustitiam nemo d nobilitas solatium est rerum inscio civilatcm recentem. Et'y me pede ac me filiis ad quo quis. Ab'me eget renovo pressa odit noviciam iste gaudere, indigne, rem merentur ullo alias eum dicit me eum cum unde y poenam ut sed porta eum rem il conserrare contumeliis. Ea v netus urgebat mi quo quam est per dignus ut, tot'y cum odit mus ruinae nunc est indicant te y arcui sed amet mandata sint nec dignus unde custodiae assum et vero fretjuentia eius quos nulla quod, nobile usus y illo statum florem.per wisi eros modestius sed AssuMenda ille falcitenentem non li scripto et est iure dictabat unde ab m essentiam vero. Eget'w ti.

    Props onemaggie, juanfra, poena, iamarinoh, shailu25, areziaal, josephscott, ddewan, noruzzaman, williampatton, jeffpaul, kafleg, maneshtimilsina, sakshamsharma5, soean, moonjellydigital, sheulyshila, yashjawale, maxinacube, mukesh27, nilambar, huzaifaalmesbah, mukeshpanchal27, westonruter.
    See #66352.


    Built from https://develop.svn.wordpress.org/trunk@64677


    git-svn-id: http://core.svn.wordpress.org/trunk@63827 1a063a9b-81f0-0310-95a4-ce76da25c4cd

diff --git a/wp-admin/includes/update-core.php b/wp-admin/includes/update-core.php
index 4b91dca2b1..84aea97c57 100644
--- a/wp-admin/includes/update-core.php
+++ b/wp-admin/includes/update-core.php
@@ -1305,6 +1305,7 @@ $_new_bundled_files = array(
 	'themes/twentytwentythree/' => '6.1',
 	'themes/twentytwentyfour/'  => '6.4',
 	'themes/twentytwentyfive/'  => '6.7',
+	'themes/ipsum/'             => '7.2',
 );

 /**
diff --git a/wp-content/themes/ipsum/assets/css/editor-style.css b/wp-content/themes/ipsum/assets/css/editor-style.css
new file mode 100644
index 0000000000..f459c3833e
--- /dev/null
+++ b/wp-content/themes/ipsum/assets/css/editor-style.css
@@ -0,0 +1,11 @@
+/*
+ * Editor-only overrides. The editors load style.css first, so this file holds
+ * only what the editors need on top of it.
+ *
+ * Sticky header part and pinned search bar: !important because the editor
+ * forces position:relative on block wrappers.
+ */
+header.wp-block-template-part:has(> .is-position-sticky),
+.sticky-bottom {
+	position: sticky !important;
+}
diff --git a/wp-content/themes/ipsum/functions.php b/wp-content/themes/ipsum/functions.php
new file mode 100644
index 0000000000..3732aed3e0
--- /dev/null
+++ b/wp-content/themes/ipsum/functions.php
@@ -0,0 +1,208 @@
+<?php
+/**
+ * Ipsum functions and definitions.
+ *
+ * @link https://developer.wordpress.org/themes/basics/theme-functions/
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+// Loads style.css in the editors too, then the few overrides only the editors need.
+if ( ! function_exists( 'ipsum_register_editor_styles' ) ) :
+	/**
+	 * Adds style.css and editor-style.css as editor stylesheets.
+	 *
+	 * @since Ipsum 1.0
+	 *
+	 * @return void
+	 */
+	function ipsum_register_editor_styles() {
+		add_editor_style( array( 'style.css', 'assets/css/editor-style.css' ) );
+	}
+endif;
+add_action( 'after_setup_theme', 'ipsum_register_editor_styles' );
+
+if ( ! function_exists( 'ipsum_add_theme_support' ) ) :
+	/**
+	 * Adds HTML5 support for navigation widgets, so their lists render inside a
+	 * nav element. Block themes already get core's other HTML5 features, and this
+	 * call merges with them.
+	 *
+	 * @since Ipsum 1.0
+	 *
+	 * @return void
+	 */
+	function ipsum_add_theme_support() {
+		add_theme_support( 'html5', array( 'navigation-widgets' ) );
+	}
+endif;
+add_action( 'after_setup_theme', 'ipsum_add_theme_support' );
+
+if ( ! function_exists( 'ipsum_enqueue_styles' ) ) :
+	/**
+	 * Enqueues styles.
+	 *
+	 * @since Ipsum 1.0
+	 *
+	 * @return void
+	 */
+	function ipsum_enqueue_styles() {
+		// Register theme stylesheet.
+		wp_register_style(
+			'ipsum-style',
+			get_parent_theme_file_uri( 'style.css' ),
+			array(),
+			wp_get_theme()->get( 'Version' )
+		);
+
+		// Enqueue theme stylesheet.
+		wp_enqueue_style( 'ipsum-style' );
+	}
+endif;
+add_action( 'wp_enqueue_scripts', 'ipsum_enqueue_styles' );
+
+if ( ! function_exists( 'ipsum_comments_cta_binding' ) ) :
+	/**
+	 * Returns the comments call to action for the current post.
+	 *
+	 * @since Ipsum 1.0
+	 *
+	 * @param array    $source_args    Block binding source arguments.
+	 * @param WP_Block $block_instance The block instance.
+	 * @return string The call to action text.
+	 */
+	function ipsum_comments_cta_binding( $source_args, $block_instance ) {
+		$post_id = $block_instance->context['postId'] ?? get_the_ID();
+
+		if ( get_comments_number( $post_id ) > 0 ) {
+			$text = __( 'Join the conversation', 'ipsum' );
+		} else {
+			$text = __( 'Be the first to comment', 'ipsum' );
+		}
+
+		return '<a href="' . esc_url( get_comments_link( $post_id ) ) . '">' . esc_html( $text ) . '</a>';
+	}
+endif;
+
+if ( ! function_exists( 'ipsum_register_block_bindings' ) ) :
+	/**
+	 * Registers the comments call-to-action block binding source.
+	 *
+	 * @since Ipsum 1.0
+	 *
+	 * @return void
+	 */
+	function ipsum_register_block_bindings() {
+		register_block_bindings_source(
+			'ipsum/comments-cta',
+			array(
+				'label'              => __( 'Comments call to action', 'ipsum' ),
+				'get_value_callback' => 'ipsum_comments_cta_binding',
+				'uses_context'       => array( 'postId' ),
+			)
+		);
+	}
+endif;
+add_action( 'init', 'ipsum_register_block_bindings' );
+
+if ( ! function_exists( 'ipsum_sidebar_template_types' ) ) :
+	/**
+	 * Registers the sidebar template variants as template types, so they are
+	 * listed with proper titles and descriptions in the Site Editor.
+	 *
+	 * @since Ipsum 1.0
+	 *
+	 * @param array $default_template_types The default template types.
+	 * @return array The template types, with the sidebar variants added.
+	 */
+	function ipsum_sidebar_template_types( $default_template_types ) {
+		$default_template_types['index-sidebar']   = array(
+			'title'       => _x( 'Index Sidebar', 'Template name', 'ipsum' ),
+			'description' => __( 'Displays the latest posts beside a sidebar with categories and recent posts.', 'ipsum' ),
+		);
+		$default_template_types['archive-sidebar'] = array(
+			'title'       => _x( 'All Archives Sidebar', 'Template name', 'ipsum' ),
+			'description' => __( 'Displays post archives beside a sidebar with categories and recent posts.', 'ipsum' ),
+		);
+		return $default_template_types;
+	}
+endif;
+add_filter( 'default_template_types', 'ipsum_sidebar_template_types' );
+
+if ( ! function_exists( 'ipsum_register_pattern_categories' ) ) :
+	/**
+	 * Registers the pattern categories the theme's patterns use beyond core's.
+	 *
+	 * @since Ipsum 1.0
+	 *
+	 * @return void
+	 */
+	function ipsum_register_pattern_categories() {
+		register_block_pattern_category(
+			'ipsum_page',
+			array(
+				'label'       => _x( 'Pages', 'Block pattern category', 'ipsum' ),
+				'description' => __( 'Full page layouts, ready to be applied to a page.', 'ipsum' ),
+			)
+		);
+	}
+endif;
+add_action( 'init', 'ipsum_register_pattern_categories' );
+
+if ( ! function_exists( 'ipsum_search_aria_label_support' ) ) :
+	/**
+	 * Lets the Search block take an ARIA label, so its search landmark can be named.
+	 *
+	 * Every Search block is a search landmark, and a page can hold more than one,
+	 * such as the search bar next to the search call to action, or next to the
+	 * search in the navigation overlay. Repeated landmarks need unique names, but
+	 * the block has no ariaLabel support of its own, so this turns on core's and
+	 * the patterns set the name.
+	 *
+	 * @since Ipsum 1.0
+	 *
+	 * @param array $metadata Metadata for the block type being registered.
+	 * @return array The block metadata, with ARIA label support on the Search block.
+	 */
+	function ipsum_search_aria_label_support( $metadata ) {
+		if ( isset( $metadata['name'] ) && 'core/search' === $metadata['name'] ) {
+			$metadata['supports']['ariaLabel'] = true;
+		}
+		return $metadata;
+	}
+endif;
+add_filter( 'block_type_metadata', 'ipsum_search_aria_label_support' );
+
+if ( ! function_exists( 'ipsum_register_block_styles' ) ) :
+	/**
+	 * Registers block style variations.
+	 *
+	 * The Evening code style keeps the Evening palette's literals on purpose,
+	 * so the block reads as a dark slab under every style variation.
+	 *
+	 * @since Ipsum 1.0
+	 *
+	 * @return void
+	 */
+	function ipsum_register_block_styles() {
+		register_block_style(
+			'core/code',
+			array(
+				'name'         => 'evening',
+				'label'        => _x( 'Evening', 'Block style label', 'ipsum' ),
+				'inline_style' => '.wp-block-code.is-style-evening{background-color:#000000;color:#fafafa;border-color:#fafafa40;}',
+			)
+		);
+
+		register_block_style(
+			'core/site-logo',
+			array(
+				'name'         => 'sharp',
+				'label'        => _x( 'Sharp', 'Block style label', 'ipsum' ),
+				'inline_style' => '.wp-block-site-logo.is-style-sharp{border-radius:0;}',
+			)
+		);
+	}
+endif;
+add_action( 'init', 'ipsum_register_block_styles' );
diff --git a/wp-content/themes/ipsum/parts/footer-wide.html b/wp-content/themes/ipsum/parts/footer-wide.html
new file mode 100644
index 0000000000..533fb910df
--- /dev/null
+++ b/wp-content/themes/ipsum/parts/footer-wide.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/footer-wide"} /-->
diff --git a/wp-content/themes/ipsum/parts/footer.html b/wp-content/themes/ipsum/parts/footer.html
new file mode 100644
index 0000000000..181edd1e56
--- /dev/null
+++ b/wp-content/themes/ipsum/parts/footer.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/footer"} /-->
diff --git a/wp-content/themes/ipsum/parts/header-collapsed.html b/wp-content/themes/ipsum/parts/header-collapsed.html
new file mode 100644
index 0000000000..039b2c9953
--- /dev/null
+++ b/wp-content/themes/ipsum/parts/header-collapsed.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/header-collapsed"} /-->
diff --git a/wp-content/themes/ipsum/parts/header-sticky.html b/wp-content/themes/ipsum/parts/header-sticky.html
new file mode 100644
index 0000000000..6d6f9cb355
--- /dev/null
+++ b/wp-content/themes/ipsum/parts/header-sticky.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/header-sticky"} /-->
diff --git a/wp-content/themes/ipsum/parts/header.html b/wp-content/themes/ipsum/parts/header.html
new file mode 100644
index 0000000000..94b2fa9136
--- /dev/null
+++ b/wp-content/themes/ipsum/parts/header.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/header-default"} /-->
diff --git a/wp-content/themes/ipsum/parts/navigation-overlay.html b/wp-content/themes/ipsum/parts/navigation-overlay.html
new file mode 100644
index 0000000000..279cf286b1
--- /dev/null
+++ b/wp-content/themes/ipsum/parts/navigation-overlay.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/navigation-overlay"} /-->
diff --git a/wp-content/themes/ipsum/parts/search-bar.html b/wp-content/themes/ipsum/parts/search-bar.html
new file mode 100644
index 0000000000..2cdce074a8
--- /dev/null
+++ b/wp-content/themes/ipsum/parts/search-bar.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/hidden-search-bar"} /-->
diff --git a/wp-content/themes/ipsum/parts/sidebar.html b/wp-content/themes/ipsum/parts/sidebar.html
new file mode 100644
index 0000000000..7befe48da1
--- /dev/null
+++ b/wp-content/themes/ipsum/parts/sidebar.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/hidden-sidebar"} /-->
diff --git a/wp-content/themes/ipsum/patterns/about-row.php b/wp-content/themes/ipsum/patterns/about-row.php
new file mode 100644
index 0000000000..542589d3ef
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/about-row.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Title: About Row
+ * Slug: ipsum/about-row
+ * Categories: about
+ * Viewport width: 1280
+ * Description: An about section on a dark band — the blog’s story beside the author’s square portrait, under a fit-text heading.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'About Row', 'Name of the about row group', 'ipsum' ); ?>"},"align":"full","style":{"elements":{"link":{"color":{"text":"var:preset|color|theme-1"}}},"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50"},"margin":{"top":"0","bottom":"0"}}},"backgroundColor":"theme-6","textColor":"theme-1","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull has-theme-1-color has-theme-6-background-color has-text-color has-background has-link-color" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50)"><!-- wp:columns {"verticalAlignment":"bottom","align":"wide","style":{"spacing":{"blockGap":{"top":"var:preset|spacing|60","left":"var:preset|spacing|80"}}}} -->
+<div class="wp-block-columns alignwide are-vertically-aligned-bottom"><!-- wp:column {"verticalAlignment":"bottom","width":"50%"} -->
+<div class="wp-block-column is-vertically-aligned-bottom" style="flex-basis:50%"><!-- wp:heading {"fitText":true} -->
+<h2 class="wp-block-heading has-fit-text"><?php esc_html_e( 'About this blog', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph {"fontSize":"medium"} -->
+<p class="has-medium-font-size"><?php esc_html_e( 'This blog belongs to Lorem—teacher by day, keeper of a quiet corner of the web by night. It runs on three sections: essays that take their time, pictures standing in for the hours between posts, and the occasional sound worth pressing play on.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:paragraph {"fontSize":"medium"} -->
+<p class="has-medium-font-size"><?php esc_html_e( 'Nothing here is optimized, scheduled, or sponsored; posts appear when they’re ready and stay up long after the trends move on. The name is borrowed from the oldest placeholder in publishing, and the page tries to live up to it—holding its shape until your own words move in.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"verticalAlignment":"bottom","width":"50%","layout":{"type":"default"}} -->
+<div class="wp-block-column is-vertically-aligned-bottom" style="flex-basis:50%"><!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-portrait-editorial.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php esc_attr_e( 'Portrait of the author.', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image --></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/archive-columns.php b/wp-content/themes/ipsum/patterns/archive-columns.php
new file mode 100644
index 0000000000..ae6b1879ce
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/archive-columns.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Title: Archive Columns
+ * Slug: ipsum/archive-columns
+ * Categories: posts
+ * Block Types: core/query
+ * Viewport width: 1280
+ * Description: Featured image beside title and meta in a responsive row — the image takes a fixed width on desktop and the full width on small screens.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[],"excludeCurrent":null},"metadata":{"categories":["posts"],"name":"<?php echo esc_html_x( 'Archive Columns', 'Name of the Archive Columns query', 'ipsum' ); ?>"},"align":"wide","layout":{"type":"default"}} -->
+<div class="wp-block-query alignwide"><!-- wp:post-template {"style":{"spacing":{"blockGap":"var:preset|spacing|60"}},"layout":{"type":"constrained"}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Media and Content', 'Name of the group holding the media and content', 'ipsum' ); ?>"},"style":{"@mobile":{"layout":{"orientation":"vertical","justifyContent":"stretch"}},"@tablet":{"layout":{"orientation":"vertical","justifyContent":"stretch"}},"spacing":{"blockGap":"var:preset|spacing|40"}},"layout":{"type":"flex","flexWrap":"nowrap","verticalAlignment":"top"}} -->
+<div class="wp-block-group"><!-- wp:post-featured-image {"isLink":true,"aspectRatio":"4/3","sizeSlug":"large","style":{"@mobile":{"layout":{"selfStretch":"fit"}},"@tablet":{"layout":{"selfStretch":"fit"}},"layout":{"selfStretch":"fixedNoShrink","flexSize":"300px"}}} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Meta', 'Name of the group holding the post title and meta', 'ipsum' ); ?>"},"style":{"layout":{"selfStretch":"fill"},"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group"><!-- wp:post-title {"isLink":true,"fontSize":"large"} /-->
+
+<!-- wp:post-date {"isLink":true,"style":{"typography":{"fontStyle":"normal","fontWeight":"400"}}} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'No Results Wrapper', 'Name of the group shown when a query has no results', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:query-no-results -->
+<!-- wp:paragraph -->
+<p><?php esc_html_e( 'No posts have been published in this section yet.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+<!-- /wp:query-no-results --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Pagination Wrapper', 'Name of the group wrapping the pagination', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="margin-top:var(--wp--preset--spacing--60)"><!-- wp:query-pagination {"paginationArrow":"arrow","layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></div>
+<!-- /wp:query -->
diff --git a/wp-content/themes/ipsum/patterns/archive-compact.php b/wp-content/themes/ipsum/patterns/archive-compact.php
new file mode 100644
index 0000000000..ee5a01a547
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/archive-compact.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Title: Archive Compact
+ * Slug: ipsum/archive-compact
+ * Categories: posts
+ * Block Types: core/query
+ * Viewport width: 1280
+ * Description: Title, meta, and an excerpt — the Standard listing without images.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[],"excludeCurrent":null},"metadata":{"categories":["posts"],"name":"<?php echo esc_html_x( 'Archive Compact', 'Name of the Archive Compact query', 'ipsum' ); ?>"},"layout":{"type":"default"}} -->
+<div class="wp-block-query"><!-- wp:post-template {"className":"hover-together","style":{"spacing":{"blockGap":"var:preset|spacing|60"}},"layout":{"type":"default"}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Template Wrapper', 'Name of the group wrapping each post in a list', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"bottom":"var:preset|spacing|50"},"padding":{"bottom":"var:preset|spacing|50"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-bottom:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Title', 'Name of the group holding the post title', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:post-title {"isLink":true,"fontSize":"2-x-large"} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Date and Categories', 'Name of the group holding the post date and categories', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:post-date {"isLink":true} /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-terms {"term":"category"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Template Copy', 'Name of the group holding the post excerpt and read more link', 'ipsum' ); ?>"},"layout":{"type":"constrained","justifyContent":"left"}} -->
+<div class="wp-block-group"><!-- wp:post-excerpt {"showMoreOnNewLine":false} /-->
+
+<!-- wp:read-more {"content":"<?php esc_attr_e( 'Read more ›', 'ipsum' ); ?>"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'No Results Wrapper', 'Name of the group shown when a query has no results', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:query-no-results -->
+<!-- wp:paragraph -->
+<p><?php esc_html_e( 'No posts have been published in this section yet.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+<!-- /wp:query-no-results --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Pagination Wrapper', 'Name of the group wrapping the pagination', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="margin-top:var(--wp--preset--spacing--60)"><!-- wp:query-pagination {"paginationArrow":"arrow","layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></div>
+<!-- /wp:query -->
diff --git a/wp-content/themes/ipsum/patterns/archive-full.php b/wp-content/themes/ipsum/patterns/archive-full.php
new file mode 100644
index 0000000000..947282c196
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/archive-full.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Title: Archive Full
+ * Slug: ipsum/archive-full
+ * Categories: posts
+ * Block Types: core/query
+ * Viewport width: 1280
+ * Description: The whole post in the stream — featured image, title, meta, full content, and the conversation link. The home feed, wherever you want it.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[],"excludeCurrent":null},"align":"full","layout":{"type":"default"}} -->
+<div class="wp-block-query alignfull"><!-- wp:post-template {"layout":{"type":"default"}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Template Wrapper', 'Name of the group wrapping each post in a list', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"bottom":"var:preset|spacing|70"},"padding":{"bottom":"var:preset|spacing|70"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-bottom:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Featured Image Wrapper', 'Name of the group wrapping the featured image', 'ipsum' ); ?>"},"align":"full","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:post-featured-image {"isLink":true,"sizeSlug":"large","style":{"spacing":{"padding":{"bottom":"var:preset|spacing|30"}}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Title', 'Name of the group holding the post title', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:post-title {"isLink":true,"fontSize":"2-x-large"} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Date and Categories', 'Name of the group holding the post date and categories', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:post-date {"isLink":true} /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-terms {"term":"category"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:post-content {"align":"full","layout":{"type":"constrained"}} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Comments Wrapper', 'Name of the group wrapping the comments', 'ipsum' ); ?>"},"align":"full","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Comments and CTA', 'Name of the group holding the comments and the call to action', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:post-comments-link /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:paragraph {"metadata":{"bindings":{"content":{"source":"ipsum/comments-cta"}},"name":"<?php echo esc_html_x( 'Comments CTA', 'Name of the comments call to action paragraph', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( 'Join the conversation', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:paragraph {"metadata":{"name":"›"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '›', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Pagination Wrapper', 'Name of the group wrapping the pagination', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="margin-top:var(--wp--preset--spacing--60)"><!-- wp:query-pagination {"paginationArrow":"arrow","layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></div>
+<!-- /wp:query -->
diff --git a/wp-content/themes/ipsum/patterns/archive-lead.php b/wp-content/themes/ipsum/patterns/archive-lead.php
new file mode 100644
index 0000000000..b54020fbbd
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/archive-lead.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Title: Archive Lead
+ * Slug: ipsum/archive-lead
+ * Categories: posts
+ * Block Types: core/query
+ * Viewport width: 1280
+ * Description: A section lead — a small Manrope label over the five latest posts in the compact, imageless listing.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Archive Lead', 'Name of the archive lead group', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50","left":"var:preset|spacing|50","right":"var:preset|spacing|50"},"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Section Title', 'Name of the group holding the section title', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:heading {"align":"wide","style":{"typography":{"lineHeight":"1","letterSpacing":"0.01rem","fontStyle":"normal","fontWeight":"600"},"spacing":{"margin":{"top":"0"}}},"fontSize":"small","fontFamily":"manrope"} -->
+<h2 class="wp-block-heading alignwide has-manrope-font-family has-small-font-size" style="margin-top:0;font-style:normal;font-weight:600;letter-spacing:0.01rem;line-height:1"><?php esc_html_e( 'Watch, Read, Listen', 'ipsum' ); ?></h2>
+<!-- /wp:heading --></div>
+<!-- /wp:group -->
+
+<!-- wp:query {"query":{"perPage":5,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"ignore","inherit":false,"taxQuery":null,"parents":[],"excludeCurrent":null},"metadata":{"name":"<?php echo esc_html_x( 'Archive List', 'Name of the archive list query', 'ipsum' ); ?>"},"layout":{"type":"default"}} -->
+<div class="wp-block-query"><!-- wp:post-template {"className":"hover-together","style":{"spacing":{"blockGap":"var:preset|spacing|60"}},"layout":{"type":"default"}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Template Wrapper', 'Name of the group wrapping each post in a list', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"bottom":"var:preset|spacing|50"},"padding":{"bottom":"var:preset|spacing|50"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-bottom:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Title', 'Name of the group holding the post title', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:post-title {"level":3,"isLink":true,"fontSize":"2-x-large"} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Date and Categories', 'Name of the group holding the post date and categories', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:post-date {"isLink":true} /-->
+
+<!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( '·', 'Name of the · element', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-terms {"term":"category"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Template Copy', 'Name of the group holding the post excerpt and read more link', 'ipsum' ); ?>"},"layout":{"type":"constrained","justifyContent":"left"}} -->
+<div class="wp-block-group"><!-- wp:post-excerpt {"showMoreOnNewLine":false} /-->
+
+<!-- wp:read-more {"content":"<?php esc_attr_e( 'Read more ›', 'ipsum' ); ?>"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'No Results Wrapper', 'Name of the group shown when a query has no results', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:query-no-results -->
+<!-- wp:paragraph -->
+<p><?php esc_html_e( 'No posts have been published in this section yet.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+<!-- /wp:query-no-results --></div>
+<!-- /wp:group --></div>
+<!-- /wp:query --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/archive-minimal.php b/wp-content/themes/ipsum/patterns/archive-minimal.php
new file mode 100644
index 0000000000..b5b7f8ec9f
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/archive-minimal.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Title: Archive Minimal
+ * Slug: ipsum/archive-minimal
+ * Categories: posts
+ * Block Types: core/query
+ * Viewport width: 1280
+ * Description: Big post titles and a whisper of meta — nothing else.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[],"excludeCurrent":null},"metadata":{"categories":["posts"],"name":"<?php echo esc_html_x( 'Archive Minimal', 'Name of the Archive Minimal query', 'ipsum' ); ?>"},"align":"wide","layout":{"type":"default"}} -->
+<div class="wp-block-query alignwide"><!-- wp:post-template {"style":{"spacing":{"blockGap":"0"}},"layout":{"type":"default"}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Minimal Row', 'Name of the minimal row group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|30","left":"var:preset|spacing|20"},"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}},"border":{"bottom":{"style":"dotted","width":"1px"},"top":[],"right":[],"left":[]}},"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"space-between","verticalAlignment":"top"}} -->
+<div class="wp-block-group" style="border-bottom-style:dotted;border-bottom-width:1px;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)"><!-- wp:post-title {"isLink":true,"className":"is-style-text-display","style":{"typography":{"fontStyle":"normal","fontWeight":"600","letterSpacing":"-0.04rem"}}} /-->
+
+<!-- wp:post-date {"format":"M j","isLink":true} /--></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'No Results Wrapper', 'Name of the group shown when a query has no results', 'ipsum' ); ?>"},"layout":{"type":"default"}} -->
+<div class="wp-block-group"><!-- wp:query-no-results {"align":"wide"} -->
+<!-- wp:paragraph -->
+<p><?php esc_html_e( 'No posts have been published in this section yet.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+<!-- /wp:query-no-results --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Pagination Wrapper', 'Name of the group wrapping the pagination', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"default"}} -->
+<div class="wp-block-group alignwide" style="margin-top:var(--wp--preset--spacing--60)"><!-- wp:query-pagination {"paginationArrow":"arrow","align":"wide","layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></div>
+<!-- /wp:query -->
diff --git a/wp-content/themes/ipsum/patterns/archive-photographic.php b/wp-content/themes/ipsum/patterns/archive-photographic.php
new file mode 100644
index 0000000000..674f77ad3b
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/archive-photographic.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Title: Archive Photographic
+ * Slug: ipsum/archive-photographic
+ * Categories: posts
+ * Block Types: core/query
+ * Viewport width: 1280
+ * Description: The images lead: a grid of square photographs with small captions of title and date.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[],"excludeCurrent":null},"metadata":{"categories":["posts"],"name":"<?php echo esc_html_x( 'Archive Photographic', 'Name of the Archive Photographic query', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"padding":{"left":"var:preset|spacing|40","right":"var:preset|spacing|40"}}},"layout":{"type":"default"}} -->
+<div class="wp-block-query alignfull" style="padding-left:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40)"><!-- wp:post-template {"style":{"spacing":{"blockGap":"var:preset|spacing|40"}},"layout":{"type":"grid","columnCount":3}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Photo Card', 'Name of the photo card group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"default"}} -->
+<div class="wp-block-group"><!-- wp:post-featured-image {"isLink":true,"aspectRatio":"1"} /-->
+
+<!-- wp:post-title {"isLink":true,"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} /--></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'No Results Wrapper', 'Name of the group shown when a query has no results', 'ipsum' ); ?>"},"layout":{"type":"default"}} -->
+<div class="wp-block-group"><!-- wp:query-no-results -->
+<!-- wp:paragraph -->
+<p><?php esc_html_e( 'No posts have been published in this section yet.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+<!-- /wp:query-no-results --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Pagination Wrapper', 'Name of the group wrapping the pagination', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"default"}} -->
+<div class="wp-block-group alignwide" style="margin-top:var(--wp--preset--spacing--60)"><!-- wp:query-pagination {"paginationArrow":"arrow","layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></div>
+<!-- /wp:query -->
diff --git a/wp-content/themes/ipsum/patterns/archive-simple.php b/wp-content/themes/ipsum/patterns/archive-simple.php
new file mode 100644
index 0000000000..ca39141da0
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/archive-simple.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Title: Archive Simple
+ * Slug: ipsum/archive-simple
+ * Categories: posts
+ * Block Types: core/query
+ * Viewport width: 1280
+ * Description: A lean chronological list — titles, dates, categories, and reading time. Inherits the template’s query; turn that off when using it inside a page.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[],"excludeCurrent":null},"metadata":{"categories":["posts"],"name":"<?php echo esc_html_x( 'Archive Simple', 'Name of the Archive Simple query', 'ipsum' ); ?>"},"align":"wide","layout":{"type":"default"}} -->
+<div class="wp-block-query alignwide"><!-- wp:post-template {"className":"hover-together","style":{"spacing":{"blockGap":"var:preset|spacing|40"}},"layout":{"type":"default"}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Archive Row', 'Name of the archive row group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:post-title {"isLink":true,"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"large"} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Date and Categories', 'Name of the group holding the post date and categories', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20","padding":{"bottom":"var:preset|spacing|50"}},"border":{"bottom":{"color":"var:preset|color|theme-4","style":"dotted","width":"1px"},"top":[],"right":[],"left":[]}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group" style="border-bottom-color:var(--wp--preset--color--theme-4);border-bottom-style:dotted;border-bottom-width:1px;padding-bottom:var(--wp--preset--spacing--50)"><!-- wp:post-date {"format":"M j","isLink":true} /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-terms {"term":"category"} /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-time-to-read /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'No Results Wrapper', 'Name of the group shown when a query has no results', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:query-no-results -->
+<!-- wp:paragraph -->
+<p><?php esc_html_e( 'No posts have been published in this section yet.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+<!-- /wp:query-no-results --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Pagination Wrapper', 'Name of the group wrapping the pagination', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="margin-top:var(--wp--preset--spacing--60)"><!-- wp:query-pagination {"paginationArrow":"arrow","layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></div>
+<!-- /wp:query -->
diff --git a/wp-content/themes/ipsum/patterns/archive-standard.php b/wp-content/themes/ipsum/patterns/archive-standard.php
new file mode 100644
index 0000000000..aea2b64ea4
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/archive-standard.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Title: Archive Standard
+ * Slug: ipsum/archive-standard
+ * Categories: posts
+ * Block Types: core/query
+ * Viewport width: 1280
+ * Description: Featured image, title, meta, and an excerpt with a Read more link — the classic listing.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[],"excludeCurrent":null},"metadata":{"categories":["posts"],"name":"<?php echo esc_html_x( 'Archive Standard', 'Name of the Archive Standard query', 'ipsum' ); ?>"},"align":"full","layout":{"type":"default"}} -->
+<div class="wp-block-query alignfull"><!-- wp:post-template {"className":"hover-together","style":{"spacing":{"blockGap":"var:preset|spacing|70"}},"layout":{"type":"default"}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Template Wrapper', 'Name of the group wrapping each post in a list', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"bottom":"var:preset|spacing|60"},"padding":{"bottom":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-bottom:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Featured Image Wrapper', 'Name of the group wrapping the featured image', 'ipsum' ); ?>"},"layout":{"type":"default"}} -->
+<div class="wp-block-group"><!-- wp:post-featured-image {"isLink":true,"sizeSlug":"large","style":{"spacing":{"padding":{"bottom":"var:preset|spacing|20"}}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Title', 'Name of the group holding the post title', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:post-title {"isLink":true,"fontSize":"2-x-large"} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Date and Categories', 'Name of the group holding the post date and categories', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:post-date {"isLink":true} /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-terms {"term":"category"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Template Copy', 'Name of the group holding the post excerpt and read more link', 'ipsum' ); ?>"},"layout":{"type":"constrained","justifyContent":"left"}} -->
+<div class="wp-block-group"><!-- wp:post-excerpt {"showMoreOnNewLine":false} /-->
+
+<!-- wp:read-more {"content":"<?php esc_attr_e( 'Read more ›', 'ipsum' ); ?>"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'No Results Wrapper', 'Name of the group shown when a query has no results', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:query-no-results -->
+<!-- wp:paragraph -->
+<p><?php esc_html_e( 'No posts have been published in this section yet.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+<!-- /wp:query-no-results --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Pagination Wrapper', 'Name of the group wrapping the pagination', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="margin-top:var(--wp--preset--spacing--60)"><!-- wp:query-pagination {"paginationArrow":"arrow","layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></div>
+<!-- /wp:query -->
diff --git a/wp-content/themes/ipsum/patterns/contact-say-hi.php b/wp-content/themes/ipsum/patterns/contact-say-hi.php
new file mode 100644
index 0000000000..c17c43112f
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/contact-say-hi.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Title: Contact Say Hi
+ * Slug: ipsum/contact-say-hi
+ * Categories: contact
+ * Viewport width: 1280
+ * Description: A centered contact invitation — a display heading with the reach-out link over a row of social icons.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Contact Say Hi', 'Name of the say hi contact group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|80","bottom":"var:preset|spacing|80"},"blockGap":"var:preset|spacing|50","margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--80);padding-bottom:var(--wp--preset--spacing--80)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Contact Say Hi Wrapper', 'Name of the say hi contact wrapper group', 'ipsum' ); ?>"},"layout":{"type":"default"}} -->
+<div class="wp-block-group"><!-- wp:heading {"className":"is-style-text-display","style":{"typography":{"textAlign":"center"}}} -->
+<h2 class="wp-block-heading has-text-align-center is-style-text-display"><?php echo wp_kses_post( __( 'Got questions? <br><a href="#" rel="nofollow">Feel free to reach out.</a>', 'ipsum' ) ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:spacer {"height":"var:preset|spacing|40","metadata":{"name":"<?php echo esc_html_x( 'S', 'Name of the spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--40)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:social-links {"size":"has-normal-icon-size","className":"is-style-logos-only","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|20"}}},"layout":{"type":"flex","justifyContent":"center"}} -->
+<ul class="wp-block-social-links has-normal-icon-size is-style-logos-only"><!-- wp:social-link {"url":"#","service":"mastodon"} /-->
+
+<!-- wp:social-link {"url":"#","service":"instagram"} /-->
+
+<!-- wp:social-link {"url":"#","service":"linkedin"} /-->
+
+<!-- wp:social-link {"url":"#","service":"feed"} /--></ul>
+<!-- /wp:social-links --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/cta-membership.php b/wp-content/themes/ipsum/patterns/cta-membership.php
new file mode 100644
index 0000000000..6e78eedcf3
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/cta-membership.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Title: CTA Membership
+ * Slug: ipsum/cta-membership
+ * Categories: call-to-action
+ * Viewport width: 1280
+ * Description: A membership invitation on the toast card — the site screenshot cover above the pitch and two buttons.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'CTA Membership', 'Name of the membership call to action group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="padding-top:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'CTA Membership Wrapper', 'Name of the membership card group', 'ipsum' ); ?>"},"className":"is-style-crop-contents","style":{"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}},"spacing":{"padding":{"top":"var:preset|spacing|30","bottom":"var:preset|spacing|30","left":"var:preset|spacing|30","right":"var:preset|spacing|30"},"blockGap":"var:preset|spacing|50"}},"backgroundColor":"theme-5","layout":{"type":"constrained"}} -->
+<div class="wp-block-group is-style-crop-contents has-theme-5-background-color has-background" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><!-- wp:cover {"url":"<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-polygons.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>","alt":"<?php echo esc_attr_x( 'Rows of glossy black hollow cones catching the light.', 'Alt text for the polygons image', 'ipsum' ); ?>","dimRatio":0,"overlayColor":"theme-2","isUserOverlayColor":true,"focalPoint":{"x":0.5,"y":0},"contentPosition":"bottom center","sizeSlug":"full","metadata":{"name":"<?php echo esc_html_x( 'Site Screenshot', 'Name of the site screenshot cover', 'ipsum' ); ?>"},"style":{"dimensions":{"aspectRatio":"16/9"},"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}},"spacing":{"padding":{"top":"var:preset|spacing|30","bottom":"var:preset|spacing|30","left":"var:preset|spacing|30","right":"var:preset|spacing|30"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-cover has-custom-content-position is-position-bottom-center" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><img class="wp-block-cover__image-background size-full" alt="<?php echo esc_attr_x( 'Rows of glossy black hollow cones catching the light.', 'Alt text for the polygons image', 'ipsum' ); ?>" src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-polygons.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" style="object-position:50% 0%" data-object-fit="cover" data-object-position="50% 0%"/><span aria-hidden="true" class="wp-block-cover__background has-theme-2-background-color has-background-dim-0 has-background-dim"></span><div class="wp-block-cover__inner-container"></div></div>
+<!-- /wp:cover -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Copy', 'Name of the membership copy group', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Paragraph', 'Name of the Title and Paragraph element', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|20"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group"><!-- wp:heading {"fontSize":"2-x-large"} -->
+<h2 class="wp-block-heading has-2-x-large-font-size"><?php esc_html_e( 'Become a friend of the blog', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph -->
+<p><?php esc_html_e( 'Friends get every essay, the unposted monthly letter, first seats when the blog exits, a print from the archive now and then—and the good feeling of running a quiet space. Cancel anytime. No hard feelings.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center","flexWrap":"nowrap"}} -->
+<div class="wp-block-buttons"><!-- wp:button {"style":{"dimensions":{"width":"var:preset|dimension|100"}}} -->
+<div class="wp-block-button"><a class="wp-block-button__link wp-element-button"><?php esc_html_e( 'Join Us', 'ipsum' ); ?></a></div>
+<!-- /wp:button -->
+
+<!-- wp:button {"className":"is-style-outline","style":{"dimensions":{"width":"var:preset|dimension|100"}}} -->
+<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button"><?php esc_html_e( 'View plans', 'ipsum' ); ?></a></div>
+<!-- /wp:button --></div>
+<!-- /wp:buttons --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/cta-search.php b/wp-content/themes/ipsum/patterns/cta-search.php
new file mode 100644
index 0000000000..d2271df11c
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/cta-search.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Title: CTA Search
+ * Slug: ipsum/cta-search
+ * Categories: call-to-action
+ * Viewport width: 1280
+ * Description: A search invitation — a display heading over the search field.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"style":{"spacing":{"blockGap":"var:preset|spacing|50","padding":{"top":"var:preset|spacing|80","bottom":"var:preset|spacing|80"}}},"layout":{"type":"constrained"}} --><div class="wp-block-group" style="padding-top:var(--wp--preset--spacing--80);padding-bottom:var(--wp--preset--spacing--80)"><!-- wp:group {"layout":{"type":"default"}} --><div class="wp-block-group"><!-- wp:heading {"fontSize":"2-x-large"} --><h2 class="wp-block-heading has-2-x-large-font-size"><?php esc_html_e( 'Find the post you half-remember.', 'ipsum' ); ?></h2><!-- /wp:heading --><!-- wp:search {"label":"<?php esc_attr_e( 'Search', 'ipsum' ); ?>","showLabel":false,"placeholder":"<?php esc_attr_e( 'A word you remember…', 'ipsum' ); ?>","buttonText":"<?php esc_attr_e( 'Search', 'ipsum' ); ?>","ariaLabel":"<?php echo esc_attr_x( 'Posts', 'Accessible name of the search form', 'ipsum' ); ?>"} /--></div><!-- /wp:group --></div><!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/events-list.php b/wp-content/themes/ipsum/patterns/events-list.php
new file mode 100644
index 0000000000..69986acc5a
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/events-list.php
@@ -0,0 +1,140 @@
+<?php
+/**
+ * Title: Events List
+ * Slug: ipsum/events-list
+ * Categories: text
+ * Viewport width: 1280
+ * Description: A stack of event rows under dotted rules — title, date and place, with a reserve link on the right.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Events List', 'Name of the events list group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|60","bottom":"var:preset|spacing|60"},"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Events List Wrapper', 'Name of the events list wrapper group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|50"}},"layout":{"type":"default"}} -->
+<div class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Description', 'Name of the title and description group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"0"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group"><!-- wp:heading {"fontSize":"large"} -->
+<h2 class="wp-block-heading has-large-font-size"><?php esc_html_e( 'Out of the browser', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph -->
+<p><?php esc_html_e( 'The blog steps off the screen now and then. These are the dates.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Events Stack', 'Name of the events stack group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|40","left":"0"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Event Row 1', 'Name of the first event row group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|20"},"padding":{"bottom":"var:preset|spacing|30"}},"border":{"top":{"width":"1px","style":"dotted"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group" style="border-top-style:dotted;border-top-width:1px;padding-bottom:var(--wp--preset--spacing--30)"><!-- wp:heading {"level":3,"fontSize":"large"} -->
+<h3 class="wp-block-heading has-large-font-size"><?php esc_html_e( 'Essays, read aloud', 'ipsum' ); ?></h3>
+<!-- /wp:heading -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Columns', 'Name of the event row columns group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"left":"0"}}},"layout":{"type":"flex","flexWrap":"wrap","justifyContent":"space-between","verticalAlignment":"top"}} -->
+<div class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Column', 'Name of the event row column group', 'ipsum' ); ?>"},"style":{"layout":{"selfStretch":"fill","flexSize":null},"spacing":{"blockGap":{"top":"0"}}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Date', 'Name of the title and date group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|30"}}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group"><!-- wp:paragraph {"style":{"typography":{"fontStyle":"normal","fontWeight":"700"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:700"><?php esc_html_e( 'Thu, Nov 12', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:paragraph {"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size"><?php esc_html_e( 'Porto, Portugal', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Link and Icon', 'Name of the link and icon group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"left":"0"}}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Link', 'Name of the link paragraph', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"700"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:700"><a href="#"><?php esc_html_e( 'Reserve a seat', 'ipsum' ); ?></a></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:icon {"icon":"core/chevron-right-small"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Event Row 2', 'Name of the second event row group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|20"},"padding":{"bottom":"var:preset|spacing|30"}},"border":{"top":{"width":"1px","style":"dotted"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group" style="border-top-style:dotted;border-top-width:1px;padding-bottom:var(--wp--preset--spacing--30)"><!-- wp:heading {"level":3} -->
+<h3 class="wp-block-heading"><?php esc_html_e( 'Pictures, printed small', 'ipsum' ); ?></h3>
+<!-- /wp:heading -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Columns', 'Name of the event row columns group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"left":"0"}}},"layout":{"type":"flex","flexWrap":"wrap","justifyContent":"space-between","verticalAlignment":"top"}} -->
+<div class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Column', 'Name of the event row column group', 'ipsum' ); ?>"},"style":{"layout":{"selfStretch":"fill","flexSize":null},"spacing":{"blockGap":{"top":"0"}}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Date', 'Name of the title and date group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|30"}}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group"><!-- wp:paragraph {"style":{"typography":{"fontStyle":"normal","fontWeight":"700"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:700"><?php esc_html_e( 'Sat, Nov 28', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:paragraph {"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size"><?php esc_html_e( 'Lisbon, Portugal', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Link and Icon', 'Name of the link and icon group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"left":"0"}}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Link', 'Name of the link paragraph', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"700"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:700"><a href="#"><?php esc_html_e( 'Reserve a seat', 'ipsum' ); ?></a></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:icon {"icon":"core/chevron-right-small"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Event Row 3', 'Name of the third event row group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|20"},"padding":{"bottom":"var:preset|spacing|30"}},"border":{"top":{"width":"1px","style":"dotted"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group" style="border-top-style:dotted;border-top-width:1px;padding-bottom:var(--wp--preset--spacing--30)"><!-- wp:heading {"level":3} -->
+<h3 class="wp-block-heading"><?php esc_html_e( 'Sounds, played loud', 'ipsum' ); ?></h3>
+<!-- /wp:heading -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Columns', 'Name of the event row columns group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"left":"0"}}},"layout":{"type":"flex","flexWrap":"wrap","justifyContent":"space-between","verticalAlignment":"top"}} -->
+<div class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Column', 'Name of the event row column group', 'ipsum' ); ?>"},"style":{"layout":{"selfStretch":"fill","flexSize":null},"spacing":{"blockGap":{"top":"0"}}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Date', 'Name of the title and date group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|30"}}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group"><!-- wp:paragraph {"style":{"typography":{"fontStyle":"normal","fontWeight":"700"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:700"><?php esc_html_e( 'Fri, Dec 11', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:paragraph {"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size"><?php esc_html_e( 'São Paulo, Brazil', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Link and Icon', 'Name of the link and icon group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"left":"0"}}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Link', 'Name of the link paragraph', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"700"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:700"><a href="#"><?php esc_html_e( 'Reserve a seat', 'ipsum' ); ?></a></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:icon {"icon":"core/chevron-right-small"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Event Row 4', 'Name of the fourth event row group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|20"},"padding":{"bottom":"var:preset|spacing|30"}},"border":{"top":{"width":"1px","style":"dotted"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group" style="border-top-style:dotted;border-top-width:1px;padding-bottom:var(--wp--preset--spacing--30)"><!-- wp:heading {"level":3,"fontSize":"large"} -->
+<h3 class="wp-block-heading has-large-font-size"><?php esc_html_e( 'Forever in draft: a conversation', 'ipsum' ); ?></h3>
+<!-- /wp:heading -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Columns', 'Name of the event row columns group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"left":"0"}}},"layout":{"type":"flex","flexWrap":"wrap","justifyContent":"space-between","verticalAlignment":"top"}} -->
+<div class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Column', 'Name of the event row column group', 'ipsum' ); ?>"},"style":{"layout":{"selfStretch":"fill","flexSize":null},"spacing":{"blockGap":{"top":"0"}}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Date', 'Name of the title and date group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|30"}}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group"><!-- wp:paragraph {"style":{"typography":{"fontStyle":"normal","fontWeight":"700"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:700"><?php esc_html_e( 'Sat, Jan 9', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:paragraph {"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size"><?php esc_html_e( 'Online, from anywhere', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Link and Icon', 'Name of the link and icon group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"left":"0"}}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Link', 'Name of the link paragraph', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"700"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:700"><a href="#"><?php esc_html_e( 'Reserve a seat', 'ipsum' ); ?></a></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:icon {"icon":"core/chevron-right-small"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/footer-centered.php b/wp-content/themes/ipsum/patterns/footer-centered.php
new file mode 100644
index 0000000000..205b85c1ef
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/footer-centered.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Title: Footer Centered
+ * Slug: ipsum/footer-centered
+ * Categories: footer
+ * Block Types: core/template-part/footer
+ * Viewport width: 1280
+ * Description: A centered footer on the toast card — the site name as a cropped wordmark over the tagline, with the credit line beneath.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Footer Centered', 'Name of the centered footer group', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Footer Centered Wrapper', 'Name of the centered footer card group', 'ipsum' ); ?>"},"className":"is-style-crop-contents","style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50","left":"var:preset|spacing|50","right":"var:preset|spacing|50"}},"elements":{"link":{"color":{"text":"var:preset|color|theme-1"}}},"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}}},"backgroundColor":"theme-6","textColor":"theme-1","layout":{"type":"constrained"}} -->
+<div class="wp-block-group is-style-crop-contents has-theme-1-color has-theme-6-background-color has-text-color has-background has-link-color" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Tagline', 'Name of the group holding the site title and tagline', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"center"}} -->
+<div class="wp-block-group alignfull"><!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Title - Fit Text', 'Name of the fit-text site name paragraph', 'ipsum' ); ?>"},"style":{"typography":{"lineHeight":"1"},"spacing":{"margin":{"top":"-10rem"}}},"fitText":true} -->
+<p class="has-fit-text" style="margin-top:-10rem;line-height:1"><?php esc_html_e( 'Ipsum', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:site-tagline {"style":{"typography":{"textAlign":"center"}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Credit Line', 'Name of the credit line paragraph', 'ipsum' ); ?>"},"style":{"typography":{"textAlign":"center"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-text-align-center has-manrope-font-family has-small-font-size">
+<?php
+/* Translators: 1. is the start of a 'a' HTML element, 2. is the end of a 'a' HTML element */
+printf( esc_html__( 'Designed with %1$sWordPress%2$s', 'ipsum' ), '<a href="' . esc_url( 'https://wordpress.org' ) . '" rel="nofollow">', '</a>' );
+?>
+</p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/footer-social.php b/wp-content/themes/ipsum/patterns/footer-social.php
new file mode 100644
index 0000000000..836dc4dd41
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/footer-social.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Title: Footer Social
+ * Slug: ipsum/footer-social
+ * Categories: footer
+ * Block Types: core/template-part/footer
+ * Viewport width: 1280
+ * Description: A centered footer — the social icons over the site title in uppercase, with the credit line beneath.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Footer Social', 'Name of the social footer group', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|60","bottom":"var:preset|spacing|70"},"blockGap":"var:preset|spacing|60"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Social Links', 'Name of the title and social links group', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"blockGap":{"top":"var:preset|spacing|30"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group alignfull"><!-- wp:social-links {"size":"has-small-icon-size","className":"is-style-logos-only","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|20"}}},"layout":{"type":"flex","justifyContent":"center"}} -->
+<ul class="wp-block-social-links has-small-icon-size is-style-logos-only"><!-- wp:social-link {"url":"#","service":"mastodon"} /-->
+
+<!-- wp:social-link {"url":"#","service":"instagram"} /-->
+
+<!-- wp:social-link {"url":"#","service":"linkedin"} /-->
+
+<!-- wp:social-link {"url":"#","service":"feed"} /--></ul>
+<!-- /wp:social-links -->
+
+<!-- wp:site-title {"level":2,"style":{"typography":{"textTransform":"uppercase","fontStyle":"normal","fontWeight":"400","textAlign":"center"}},"fontSize":"large"} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Credit Line', 'Name of the credit line paragraph', 'ipsum' ); ?>"},"style":{"typography":{"textAlign":"center"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-text-align-center has-manrope-font-family has-small-font-size">
+<?php
+/* Translators: 1. is the start of a 'a' HTML element, 2. is the end of a 'a' HTML element */
+printf( esc_html__( 'Designed with %1$sWordPress%2$s', 'ipsum' ), '<a href="' . esc_url( 'https://wordpress.org' ) . '" rel="nofollow">', '</a>' );
+?>
+</p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/footer-subscribe.php b/wp-content/themes/ipsum/patterns/footer-subscribe.php
new file mode 100644
index 0000000000..5fc7abce8e
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/footer-subscribe.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Title: Footer Subscribe
+ * Slug: ipsum/footer-subscribe
+ * Categories: footer
+ * Block Types: core/template-part/footer
+ * Viewport width: 1280
+ * Description: A footer leading with the subscribe invitation on the toast card — a quiet pitch and a full-width button — over the credit line.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Footer Subscribe', 'Name of the subscribe footer group', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"},"blockGap":"var:preset|spacing|40"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Subscribe Card', 'Name of the subscribe card group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|30","left":"var:preset|spacing|30","right":"var:preset|spacing|30"},"blockGap":"var:preset|spacing|50"},"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}},"elements":{"link":{"color":{"text":"var:preset|color|theme-1"}}}},"backgroundColor":"theme-6","textColor":"theme-1","layout":{"type":"constrained","justifyContent":"left"}} -->
+<div class="wp-block-group has-theme-1-color has-theme-6-background-color has-text-color has-background has-link-color" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title Wrapper', 'Name of the subscribe title group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|20"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group"><!-- wp:heading {"style":{"typography":{"textAlign":"center"}},"fontSize":"x-large"} -->
+<h2 class="wp-block-heading has-text-align-center has-x-large-font-size"><?php esc_html_e( 'The quiet kind of newsletter.', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph {"style":{"typography":{"textAlign":"center"}},"fontSize":"medium"} -->
+<p class="has-text-align-center has-medium-font-size"><?php esc_html_e( 'New essays arrive as they’re published—no noise.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"left"}} -->
+<div class="wp-block-buttons"><!-- wp:button {"backgroundColor":"theme-1","textColor":"theme-2","style":{"dimensions":{"width":"var:preset|dimension|100"},"elements":{"link":{"color":{"text":"var:preset|color|theme-2"}}}}} -->
+<div class="wp-block-button"><a class="wp-block-button__link has-theme-2-color has-theme-1-background-color has-text-color has-background has-link-color wp-element-button"><?php esc_html_e( 'Subscribe', 'ipsum' ); ?></a></div>
+<!-- /wp:button --></div>
+<!-- /wp:buttons --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Credit Line', 'Name of the credit line row group', 'ipsum' ); ?>"},"layout":{"type":"flex","flexWrap":"nowrap","verticalAlignment":"top","justifyContent":"space-between"}} -->
+<div class="wp-block-group"><!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Credit Line', 'Name of the credit line paragraph', 'ipsum' ); ?>"},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size">
+<?php
+/* Translators: 1. is the start of a 'a' HTML element, 2. is the end of a 'a' HTML element */
+printf( esc_html__( 'Designed with %1$sWordPress%2$s', 'ipsum' ), '<a href="' . esc_url( 'https://wordpress.org' ) . '" rel="nofollow">', '</a>' );
+?>
+</p>
+<!-- /wp:paragraph -->
+
+<!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Back to Top', 'Name of the back to top paragraph', 'ipsum' ); ?>"},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size"><a href="#top"><?php esc_html_e( 'Back to top ↑', 'ipsum' ); ?></a></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/footer-wide.php b/wp-content/themes/ipsum/patterns/footer-wide.php
new file mode 100644
index 0000000000..b61fc25f18
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/footer-wide.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Title: Footer Wide
+ * Slug: ipsum/footer-wide
+ * Categories: footer
+ * Block Types: core/template-part/footer
+ * Viewport width: 1280
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Footer Wide', 'Name of the wide footer group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50","left":"var:preset|spacing|40","right":"var:preset|spacing|40"},"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--40)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Footer Row', 'Name of the footer row group', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"padding":{"top":"var:preset|spacing|20","bottom":"var:preset|spacing|20"}}},"layout":{"type":"flex","flexWrap":"wrap","justifyContent":"space-between"}} -->
+<div class="wp-block-group alignwide" style="padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)"><!-- wp:paragraph {"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size">
+<?php
+/* Translators: 1. is the start of a 'a' HTML element, 2. is the end of a 'a' HTML element */
+printf( esc_html__( 'Designed with %1$sWordPress%2$s', 'ipsum' ), '<a href="' . esc_url( 'https://wordpress.org' ) . '" rel="nofollow">', '</a>' );
+?>
+</p>
+<!-- /wp:paragraph -->
+
+<!-- wp:social-links {"size":"has-small-icon-size","className":"is-style-logos-only","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|20"}}}} -->
+<ul class="wp-block-social-links has-small-icon-size is-style-logos-only"><!-- wp:social-link {"url":"#","service":"linkedin"} /-->
+
+<!-- wp:social-link {"url":"#","service":"mastodon"} /-->
+
+<!-- wp:social-link {"url":"#","service":"feed"} /--></ul>
+<!-- /wp:social-links --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/footer.php b/wp-content/themes/ipsum/patterns/footer.php
new file mode 100644
index 0000000000..4b52895fbd
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/footer.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Title: Footer
+ * Slug: ipsum/footer
+ * Categories: footer
+ * Block Types: core/template-part/footer
+ * Viewport width: 1280
+ * Description: The theme’s default footer — credit line and social links in a compact row.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"patternName":"ipsum/footer","name":"<?php echo esc_html_x( 'Footer', 'Name of the footer group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50","left":"var:preset|spacing|40","right":"var:preset|spacing|40"},"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--40)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Footer Row', 'Name of the footer row group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|20","bottom":"var:preset|spacing|20"}}},"layout":{"type":"flex","flexWrap":"wrap","justifyContent":"space-between"}} -->
+<div class="wp-block-group" style="padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)"><!-- wp:paragraph {"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size">
+<?php
+/* Translators: 1. is the start of a 'a' HTML element, 2. is the end of a 'a' HTML element */
+printf( esc_html__( 'Designed with %1$sWordPress%2$s', 'ipsum' ), '<a href="' . esc_url( 'https://wordpress.org' ) . '" rel="nofollow">', '</a>' );
+?>
+</p>
+<!-- /wp:paragraph -->
+
+<!-- wp:social-links {"size":"has-small-icon-size","className":"is-style-logos-only","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|20"}}}} -->
+<ul class="wp-block-social-links has-small-icon-size is-style-logos-only"><!-- wp:social-link {"url":"#","service":"linkedin"} /-->
+
+<!-- wp:social-link {"url":"#","service":"mastodon"} /-->
+
+<!-- wp:social-link {"url":"#","service":"feed"} /--></ul>
+<!-- /wp:social-links --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/format-audio.php b/wp-content/themes/ipsum/patterns/format-audio.php
new file mode 100644
index 0000000000..1e61018d10
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/format-audio.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Title: Format Audio
+ * Slug: ipsum/format-audio
+ * Categories: posts
+ * Viewport width: 1280
+ * Description: An audio-format post body — cover art, title and a one-line description over the player.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Format Audio', 'Name of the audio format group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Format Audio Wrapper', 'Name of the audio format card group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|30","bottom":"var:preset|spacing|30","left":"var:preset|spacing|30","right":"var:preset|spacing|30"}},"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}}},"backgroundColor":"theme-5","layout":{"type":"constrained"}} -->
+<div class="wp-block-group has-theme-5-background-color has-background" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-monobloc-front.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A blurred plastic chair in blue and cream tones.', 'Alt text for the monobloc chair image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Description', 'Name of the title and description group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|20"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group"><!-- wp:heading {"fontSize":"large"} -->
+<h2 class="wp-block-heading has-large-font-size"><?php esc_html_e( 'The keyboard, slowed down', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph -->
+<p><?php esc_html_e( 'The first recording to make it into a post: three minutes of typing, stretched until it sounds like weather', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:audio -->
+<figure class="wp-block-audio"><audio controls></audio></figure>
+<!-- /wp:audio --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/format-link.php b/wp-content/themes/ipsum/patterns/format-link.php
new file mode 100644
index 0000000000..76fcbac149
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/format-link.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Title: Format Link
+ * Slug: ipsum/format-link
+ * Categories: posts
+ * Viewport width: 1280
+ * Description: A link-format post body — a bold line about the destination, with the link set off by a dotted rule.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Format Link', 'Name of the link format group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Format Link', 'Name of the link format card group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|30","bottom":"var:preset|spacing|30","left":"var:preset|spacing|30","right":"var:preset|spacing|30"},"blockGap":"var:preset|spacing|40"},"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}}},"backgroundColor":"theme-5","layout":{"type":"constrained"}} -->
+<div class="wp-block-group has-theme-5-background-color has-background" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><!-- wp:paragraph {"style":{"typography":{"fontStyle":"normal","fontWeight":"700"}},"fontSize":"medium"} -->
+<p class="has-medium-font-size" style="font-style:normal;font-weight:700"><?php esc_html_e( 'Elsewhere: a long read on how lorem ipsum took over design—five centuries of scrambled Cicero standing in for the words to come.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Link Line', 'Name of the link line group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"right":"var:preset|spacing|20","left":"var:preset|spacing|20"}},"border":{"left":{"width":"1px","style":"dotted"}}},"fontSize":"medium","layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"space-between"}} -->
+<div class="wp-block-group has-medium-font-size" style="border-left-style:dotted;border-left-width:1px;padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)"><!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Link', 'Name of the link paragraph', 'ipsum' ); ?>"},"style":{"typography":{"lineHeight":"1"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="line-height:1"><a href="#"><?php esc_html_e( 'https://example.com', 'ipsum' ); ?></a></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/gallery-grid-full.php b/wp-content/themes/ipsum/patterns/gallery-grid-full.php
new file mode 100644
index 0000000000..f32a8a8452
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/gallery-grid-full.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * Title: Gallery Grid Full
+ * Slug: ipsum/gallery-grid-full
+ * Categories: gallery
+ * Viewport width: 1280
+ * Description: The square photo grid at full width, with a text tile linking to the gallery’s Instagram.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Gallery Grid Full', 'Name of the full-width gallery grid group', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50"},"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50)"><!-- wp:group {"align":"wide","style":{"spacing":{"blockGap":{"top":"var:preset|spacing|30","left":"var:preset|spacing|30"}}},"layout":{"type":"grid","minimumColumnWidth":"20rem"}} -->
+<div class="wp-block-group alignwide"><!-- wp:cover {"overlayColor":"theme-6","isUserOverlayColor":true,"metadata":{"name":"<?php echo esc_html_x( 'Grid Unit', 'Name of the gallery text tile', 'ipsum' ); ?>"},"style":{"dimensions":{"aspectRatio":"1"},"border":{"radius":{"topLeft":"5px","topRight":"5px","bottomLeft":"5px","bottomRight":"5px"}}},"textColor":"theme-1","layout":{"type":"constrained"}} -->
+<div class="wp-block-cover has-theme-1-color has-text-color" style="border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px"><span aria-hidden="true" class="wp-block-cover__background has-theme-6-background-color has-background-dim-100 has-background-dim"></span><div class="wp-block-cover__inner-container"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Info Stack', 'Name of the tile info stack group', 'ipsum' ); ?>"},"style":{"dimensions":{"minHeight":"100%"},"spacing":{"blockGap":{"top":"0","left":"0"}},"elements":{"link":{"color":{"text":"var:preset|color|theme-1"}}}},"layout":{"type":"flex","orientation":"vertical","verticalAlignment":"center","justifyContent":"center"}} -->
+<div class="wp-block-group has-link-color" style="min-height:100%"><!-- wp:heading {"fontSize":"medium"} -->
+<h2 class="wp-block-heading has-medium-font-size"><?php esc_html_e( 'Instagram', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph {"style":{"typography":{"textAlign":"center"}},"fontSize":"medium"} -->
+<p class="has-text-align-center has-medium-font-size"><a href="#"><?php esc_html_e( '@ipsum', 'ipsum' ); ?></a></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div></div>
+<!-- /wp:cover -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-metal-table.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A dark metal tabletop on a single thin leg against a hazy sky.', 'Alt text for the metal table image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-staircase.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A black staircase climbing a white wall.', 'Alt text for the staircase image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-pendant-lamp.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A glowing pendant lamp above a warm orange room.', 'Alt text for the pendant lamp image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-polygons.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'Rows of glossy black hollow cones catching the light.', 'Alt text for the polygons image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-monobloc-front.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A blurred plastic chair in blue and cream tones.', 'Alt text for the monobloc chair image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-capital.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A capital A pressed into brushed metal.', 'Alt text for the capital letter image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-monobloc-back.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A blurred plastic chair seen from behind, in iridescent pastel tones.', 'Alt text for the back view of the monobloc chair image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-studio-closeup.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'Metal cylinders standing on a gray surface.', 'Alt text for the studio close-up image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-lead-letter.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'The number 27 fading into blue and pink light.', 'Alt text for the lead letter image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/gallery-grid-wide.php b/wp-content/themes/ipsum/patterns/gallery-grid-wide.php
new file mode 100644
index 0000000000..4a14747d0e
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/gallery-grid-wide.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * Title: Gallery Grid Wide
+ * Slug: ipsum/gallery-grid-wide
+ * Categories: gallery
+ * Viewport width: 1280
+ * Description: The square photo grid at band width, with a text tile linking to the gallery’s Instagram.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Gallery Grid Wide', 'Name of the wide gallery grid group', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)"><!-- wp:group {"align":"wide","style":{"spacing":{"blockGap":{"top":"var:preset|spacing|30","left":"var:preset|spacing|30"}}},"layout":{"type":"grid","minimumColumnWidth":"15rem"}} -->
+<div class="wp-block-group alignwide"><!-- wp:cover {"overlayColor":"theme-6","isUserOverlayColor":true,"metadata":{"name":"<?php echo esc_html_x( 'Grid Unit', 'Name of the gallery text tile', 'ipsum' ); ?>"},"style":{"dimensions":{"aspectRatio":"1"},"border":{"radius":{"topLeft":"5px","topRight":"5px","bottomLeft":"5px","bottomRight":"5px"}}},"textColor":"theme-1","layout":{"type":"constrained"}} -->
+<div class="wp-block-cover has-theme-1-color has-text-color" style="border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px"><span aria-hidden="true" class="wp-block-cover__background has-theme-6-background-color has-background-dim-100 has-background-dim"></span><div class="wp-block-cover__inner-container"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Info Stack', 'Name of the tile info stack group', 'ipsum' ); ?>"},"style":{"dimensions":{"minHeight":"100%"},"spacing":{"blockGap":{"top":"0","left":"0"}},"elements":{"link":{"color":{"text":"var:preset|color|theme-1"}}}},"layout":{"type":"flex","orientation":"vertical","verticalAlignment":"center","justifyContent":"center"}} -->
+<div class="wp-block-group has-link-color" style="min-height:100%"><!-- wp:heading {"fontSize":"medium"} -->
+<h2 class="wp-block-heading has-medium-font-size"><?php esc_html_e( 'Instagram', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph {"style":{"typography":{"textAlign":"center"}},"fontSize":"medium"} -->
+<p class="has-text-align-center has-medium-font-size"><a href="#"><?php esc_html_e( '@ipsum', 'ipsum' ); ?></a></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div></div>
+<!-- /wp:cover -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-metal-table.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A dark metal tabletop on a single thin leg against a hazy sky.', 'Alt text for the metal table image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-staircase.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A black staircase climbing a white wall.', 'Alt text for the staircase image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-pendant-lamp.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A glowing pendant lamp above a warm orange room.', 'Alt text for the pendant lamp image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-polygons.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'Rows of glossy black hollow cones catching the light.', 'Alt text for the polygons image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-monobloc-front.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A blurred plastic chair in blue and cream tones.', 'Alt text for the monobloc chair image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-capital.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A capital A pressed into brushed metal.', 'Alt text for the capital letter image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-monobloc-back.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A blurred plastic chair seen from behind, in iridescent pastel tones.', 'Alt text for the back view of the monobloc chair image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-studio-closeup.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'Metal cylinders standing on a gray surface.', 'Alt text for the studio close-up image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-lead-letter.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'The number 27 fading into blue and pink light.', 'Alt text for the lead letter image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/gallery-grid.php b/wp-content/themes/ipsum/patterns/gallery-grid.php
new file mode 100644
index 0000000000..9922ce8148
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/gallery-grid.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ * Title: Gallery Grid
+ * Slug: ipsum/gallery-grid
+ * Categories: gallery
+ * Viewport width: 1280
+ * Description: A square photo grid at reading width, with a text tile linking to the gallery’s Instagram.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Gallery Grid', 'Name of the gallery grid group', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)"><!-- wp:group {"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|30","left":"var:preset|spacing|30"}}},"layout":{"type":"grid","minimumColumnWidth":"10rem"}} -->
+<div class="wp-block-group"><!-- wp:cover {"overlayColor":"theme-6","isUserOverlayColor":true,"metadata":{"name":"<?php echo esc_html_x( 'Grid Unit', 'Name of the gallery text tile', 'ipsum' ); ?>"},"style":{"dimensions":{"aspectRatio":"1"},"border":{"radius":{"topLeft":"5px","topRight":"5px","bottomLeft":"5px","bottomRight":"5px"}}},"textColor":"theme-1","layout":{"type":"constrained"}} -->
+<div class="wp-block-cover has-theme-1-color has-text-color" style="border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px"><span aria-hidden="true" class="wp-block-cover__background has-theme-6-background-color has-background-dim-100 has-background-dim"></span><div class="wp-block-cover__inner-container"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Info Stack', 'Name of the tile info stack group', 'ipsum' ); ?>"},"style":{"dimensions":{"minHeight":"100%"},"spacing":{"blockGap":{"top":"0","left":"0"}},"elements":{"link":{"color":{"text":"var:preset|color|theme-1"}}}},"layout":{"type":"flex","orientation":"vertical","verticalAlignment":"center","justifyContent":"center"}} -->
+<div class="wp-block-group has-link-color" style="min-height:100%"><!-- wp:heading {"fontSize":"medium"} -->
+<h2 class="wp-block-heading has-medium-font-size"><?php esc_html_e( 'Instagram', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph {"style":{"typography":{"textAlign":"center"}},"fontSize":"medium"} -->
+<p class="has-text-align-center has-medium-font-size"><a href="#"><?php esc_html_e( '@ipsum', 'ipsum' ); ?></a></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div></div>
+<!-- /wp:cover -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-metal-table.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A dark metal tabletop on a single thin leg against a hazy sky.', 'Alt text for the metal table image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-staircase.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A black staircase climbing a white wall.', 'Alt text for the staircase image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-pendant-lamp.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A glowing pendant lamp above a warm orange room.', 'Alt text for the pendant lamp image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-polygons.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'Rows of glossy black hollow cones catching the light.', 'Alt text for the polygons image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-monobloc-front.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A blurred plastic chair in blue and cream tones.', 'Alt text for the monobloc chair image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-capital.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A capital A pressed into brushed metal.', 'Alt text for the capital letter image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-monobloc-back.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A blurred plastic chair seen from behind, in iridescent pastel tones.', 'Alt text for the back view of the monobloc chair image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-studio-closeup.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'Metal cylinders standing on a gray surface.', 'Alt text for the studio close-up image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-lead-letter.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'The number 27 fading into blue and pink light.', 'Alt text for the lead letter image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-facade.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A blurred figure walking past an orange facade.', 'Alt text for the facade image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:image {"aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-sculpture.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A black ribbon-like sculpture curving across a pale background.', 'Alt text for the sculpture image', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover"/></figure>
+<!-- /wp:image --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/gallery-offset-full.php b/wp-content/themes/ipsum/patterns/gallery-offset-full.php
new file mode 100644
index 0000000000..a9f97ad206
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/gallery-offset-full.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * Title: Gallery Offset Full
+ * Slug: ipsum/gallery-offset-full
+ * Categories: gallery
+ * Viewport width: 1280
+ * Description: The offset gallery at full width — three columns of photographs with rounded corners, in mixed ratios.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Gallery Offset Full Width', 'Name of the full-width offset gallery group', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"padding":{"right":"var:preset|spacing|40","left":"var:preset|spacing|40","top":"var:preset|spacing|50","bottom":"var:preset|spacing|50"},"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"default"}} -->
+<div class="wp-block-group alignfull" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--40)"><!-- wp:columns {"align":"full","style":{"spacing":{"blockGap":{"top":"var:preset|spacing|30","left":"var:preset|spacing|30"},"margin":{"top":"0","bottom":"0"}}}} -->
+<div class="wp-block-columns alignfull" style="margin-top:0;margin-bottom:0"><!-- wp:column {"style":{"spacing":{"blockGap":"0"}}} -->
+<div class="wp-block-column"><!-- wp:image {"aspectRatio":"4/3","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-metal-table.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A dark metal tabletop on a single thin leg against a hazy sky.', 'Alt text for the metal table image', 'ipsum' ); ?>" style="aspect-ratio:4/3;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:spacer {"height":"var:preset|spacing|30","metadata":{"name":"<?php echo esc_html_x( 'XS', 'Name of the small spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:image {"aspectRatio":"3/4","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-staircase.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A black staircase climbing a white wall.', 'Alt text for the staircase image', 'ipsum' ); ?>" style="aspect-ratio:3/4;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:spacer {"height":"var:preset|spacing|30","metadata":{"name":"<?php echo esc_html_x( 'XS', 'Name of the small spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:image {"aspectRatio":"4/3","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-pendant-lamp.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A glowing pendant lamp above a warm orange room.', 'Alt text for the pendant lamp image', 'ipsum' ); ?>" style="aspect-ratio:4/3;object-fit:cover"/></figure>
+<!-- /wp:image --></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"style":{"spacing":{"blockGap":"0"}}} -->
+<div class="wp-block-column"><!-- wp:spacer {"height":"var:preset|spacing|50","metadata":{"name":"<?php echo esc_html_x( 'R', 'Name of the offset spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--50)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:image {"aspectRatio":"3/4","scale":"cover","sizeSlug":"large","linkDestination":"none"} -->
+<figure class="wp-block-image size-large"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-monobloc-front.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A blurred plastic chair in blue and cream tones.', 'Alt text for the monobloc chair image', 'ipsum' ); ?>" style="aspect-ratio:3/4;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:spacer {"height":"var:preset|spacing|30","metadata":{"name":"<?php echo esc_html_x( 'XS', 'Name of the small spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:image {"aspectRatio":"4/3","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-polygons.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'Rows of glossy black hollow cones catching the light.', 'Alt text for the polygons image', 'ipsum' ); ?>" style="aspect-ratio:4/3;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:spacer {"height":"var:preset|spacing|30","metadata":{"name":"<?php echo esc_html_x( 'XS', 'Name of the small spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:image {"aspectRatio":"3/4","scale":"cover","sizeSlug":"large","linkDestination":"none"} -->
+<figure class="wp-block-image size-large"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-lead-letter.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'The number 27 fading into blue and pink light.', 'Alt text for the lead letter image', 'ipsum' ); ?>" style="aspect-ratio:3/4;object-fit:cover"/></figure>
+<!-- /wp:image --></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"style":{"spacing":{"blockGap":"0"}}} -->
+<div class="wp-block-column"><!-- wp:image {"aspectRatio":"4/3","scale":"cover","sizeSlug":"large","linkDestination":"none"} -->
+<figure class="wp-block-image size-large"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-capital.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A capital A pressed into brushed metal.', 'Alt text for the capital letter image', 'ipsum' ); ?>" style="aspect-ratio:4/3;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:spacer {"height":"var:preset|spacing|30","metadata":{"name":"<?php echo esc_html_x( 'XS', 'Name of the small spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:image {"aspectRatio":"3/4","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-desk-fan.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A desk fan blurred mid-spin against a blue background.', 'Alt text for the desk fan image', 'ipsum' ); ?>" style="aspect-ratio:3/4;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:spacer {"height":"var:preset|spacing|30","metadata":{"name":"<?php echo esc_html_x( 'XS', 'Name of the small spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:image {"aspectRatio":"4/3","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-portrait-editorial.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A person in profile, in shadow against a blue sky.', 'Alt text for the editorial portrait image', 'ipsum' ); ?>" style="aspect-ratio:4/3;object-fit:cover"/></figure>
+<!-- /wp:image --></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/gallery-offset.php b/wp-content/themes/ipsum/patterns/gallery-offset.php
new file mode 100644
index 0000000000..4f5022d5e9
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/gallery-offset.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * Title: Gallery Offset
+ * Slug: ipsum/gallery-offset
+ * Categories: gallery
+ * Viewport width: 1280
+ * Description: Three offset columns of photographs with rounded corners, in mixed ratios.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Gallery Offset Wide', 'Name of the offset gallery group', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"padding":{"right":"var:preset|spacing|40","left":"var:preset|spacing|40","top":"var:preset|spacing|50","bottom":"var:preset|spacing|50"},"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--40)"><!-- wp:columns {"align":"wide","style":{"spacing":{"blockGap":{"top":"var:preset|spacing|30","left":"var:preset|spacing|30"},"margin":{"top":"0","bottom":"0"}}}} -->
+<div class="wp-block-columns alignwide" style="margin-top:0;margin-bottom:0"><!-- wp:column {"style":{"spacing":{"blockGap":"0"}}} -->
+<div class="wp-block-column"><!-- wp:image {"aspectRatio":"4/3","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-metal-table.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A dark metal tabletop on a single thin leg against a hazy sky.', 'Alt text for the metal table image', 'ipsum' ); ?>" style="aspect-ratio:4/3;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:spacer {"height":"var:preset|spacing|30","metadata":{"name":"<?php echo esc_html_x( 'XS', 'Name of the small spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:image {"aspectRatio":"3/4","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-staircase.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A black staircase climbing a white wall.', 'Alt text for the staircase image', 'ipsum' ); ?>" style="aspect-ratio:3/4;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:spacer {"height":"var:preset|spacing|30","metadata":{"name":"<?php echo esc_html_x( 'XS', 'Name of the small spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:image {"aspectRatio":"4/3","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-pendant-lamp.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A glowing pendant lamp above a warm orange room.', 'Alt text for the pendant lamp image', 'ipsum' ); ?>" style="aspect-ratio:4/3;object-fit:cover"/></figure>
+<!-- /wp:image --></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"style":{"spacing":{"blockGap":"0"}}} -->
+<div class="wp-block-column"><!-- wp:spacer {"height":"var:preset|spacing|50","metadata":{"name":"<?php echo esc_html_x( 'R', 'Name of the offset spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--50)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:image {"aspectRatio":"3/4","scale":"cover","sizeSlug":"large","linkDestination":"none"} -->
+<figure class="wp-block-image size-large"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-monobloc-front.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A blurred plastic chair in blue and cream tones.', 'Alt text for the monobloc chair image', 'ipsum' ); ?>" style="aspect-ratio:3/4;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:spacer {"height":"var:preset|spacing|30","metadata":{"name":"<?php echo esc_html_x( 'XS', 'Name of the small spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:image {"aspectRatio":"4/3","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-polygons.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'Rows of glossy black hollow cones catching the light.', 'Alt text for the polygons image', 'ipsum' ); ?>" style="aspect-ratio:4/3;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:spacer {"height":"var:preset|spacing|30","metadata":{"name":"<?php echo esc_html_x( 'XS', 'Name of the small spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:image {"aspectRatio":"3/4","scale":"cover","sizeSlug":"large","linkDestination":"none"} -->
+<figure class="wp-block-image size-large"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-lead-letter.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'The number 27 fading into blue and pink light.', 'Alt text for the lead letter image', 'ipsum' ); ?>" style="aspect-ratio:3/4;object-fit:cover"/></figure>
+<!-- /wp:image --></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"style":{"spacing":{"blockGap":"0"}}} -->
+<div class="wp-block-column"><!-- wp:image {"aspectRatio":"4/3","scale":"cover","sizeSlug":"large","linkDestination":"none"} -->
+<figure class="wp-block-image size-large"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-capital.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A capital A pressed into brushed metal.', 'Alt text for the capital letter image', 'ipsum' ); ?>" style="aspect-ratio:4/3;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:spacer {"height":"var:preset|spacing|30","metadata":{"name":"<?php echo esc_html_x( 'XS', 'Name of the small spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:image {"aspectRatio":"3/4","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-desk-fan.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A desk fan blurred mid-spin against a blue background.', 'Alt text for the desk fan image', 'ipsum' ); ?>" style="aspect-ratio:3/4;object-fit:cover"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:spacer {"height":"var:preset|spacing|30","metadata":{"name":"<?php echo esc_html_x( 'XS', 'Name of the small spacer', 'ipsum' ); ?>"}} -->
+<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div>
+<!-- /wp:spacer -->
+
+<!-- wp:image {"aspectRatio":"4/3","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-portrait-editorial.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'A person in profile, in shadow against a blue sky.', 'Alt text for the editorial portrait image', 'ipsum' ); ?>" style="aspect-ratio:4/3;object-fit:cover"/></figure>
+<!-- /wp:image --></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/header-collapsed.php b/wp-content/themes/ipsum/patterns/header-collapsed.php
new file mode 100644
index 0000000000..22d739aa9d
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/header-collapsed.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * Title: Header Collapsed
+ * Slug: ipsum/header-collapsed
+ * Categories: header
+ * Block Types: core/template-part/header
+ * Viewport width: 1280
+ * Description: Header with the site logo, title and tagline on the left and the navigation always collapsed behind a menu button.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Header Wrapper', 'Name of the group wrapping the header', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50","left":"var:preset|spacing|40","right":"var:preset|spacing|40"},"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"default"}} -->
+<div class="wp-block-group" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--40)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Header Row', 'Name of the header row group', 'ipsum' ); ?>"},"align":"full","layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group alignfull"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Site Logo, Title and Tagline', 'Name of the group holding the site logo, title and tagline', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|20","left":"var:preset|spacing|30"}},"layout":{"selfStretch":"fill","flexSize":null}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:site-logo {"width":64,"shouldSyncIcon":true,"style":{"spacing":{"padding":{"top":"0","bottom":"0","left":"0","right":"0"},"margin":{"top":"0","bottom":"0","left":"0","right":"0"}},"color":{"duotone":"var:preset|duotone|duotone-1"}}} /-->
+
+<!-- wp:site-title {"level":0} /-->
+
+<!-- wp:site-tagline {"metadata":{"blockVisibility":{"viewport":{"tablet":false,"mobile":false}}},"style":{"layout":{"selfStretch":"fill","flexSize":null}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Navigation Toast', 'Name of the navigation toast group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|20","bottom":"var:preset|spacing|20","left":"var:preset|spacing|20","right":"var:preset|spacing|20"}},"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}}},"backgroundColor":"theme-6","textColor":"theme-1","layout":{"type":"flex","orientation":"vertical","justifyContent":"center","verticalAlignment":"center"}} -->
+<div class="wp-block-group has-theme-1-color has-theme-6-background-color has-text-color has-background" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)"><!-- wp:navigation {"overlayMenu":"always","overlay":"navigation-overlay","icon":"menu","fontSize":"small","ariaLabel":"<?php esc_attr_e( 'Primary', 'ipsum' ); ?>"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/header-default.php b/wp-content/themes/ipsum/patterns/header-default.php
new file mode 100644
index 0000000000..d3447c953d
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/header-default.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Title: Header Default
+ * Slug: ipsum/header-default
+ * Categories: header
+ * Block Types: core/template-part/header
+ * Viewport width: 1280
+ * Description: The theme’s default header — site title and tagline on the left, navigation on the right.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Header Wrapper', 'Name of the group wrapping the header', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|60","left":"var:preset|spacing|40","right":"var:preset|spacing|40"},"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"default"}} -->
+<div class="wp-block-group" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--40)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Header Row', 'Name of the header row group', 'ipsum' ); ?>"},"align":"full","layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group alignfull"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Tagline', 'Name of the group holding the site title and tagline', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"},"layout":{"selfStretch":"fill","flexSize":null}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:site-title {"level":0} /-->
+
+<!-- wp:site-tagline {"style":{"layout":{"selfStretch":"fill","flexSize":null}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:navigation {"overlay":"navigation-overlay","icon":"menu","fontSize":"small","ariaLabel":"<?php esc_attr_e( 'Primary', 'ipsum' ); ?>"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/header-sticky.php b/wp-content/themes/ipsum/patterns/header-sticky.php
new file mode 100644
index 0000000000..72eac9a87f
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/header-sticky.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Title: Header Sticky
+ * Slug: ipsum/header-sticky
+ * Categories: header
+ * Block Types: core/template-part/header
+ * Viewport width: 1280
+ * Description: A sticky full-width header bar with the site logo, title and navigation.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Header Wrapper', 'Name of the group wrapping the header', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"0","bottom":"0"},"padding":{"bottom":"var:preset|spacing|70"}},"position":{"type":"sticky","top":"0px"}},"layout":{"type":"default"}} -->
+<div class="wp-block-group" style="margin-top:0;margin-bottom:0;padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Header Sticky', 'Name of the sticky header group', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40","left":"var:preset|spacing|40","right":"var:preset|spacing|40"}},"position":{"type":"sticky","top":"0px"},"shadow":"var:preset|shadow|soft","border":{"right":[],"top":[],"bottom":{"color":"var:preset|color|theme-5","width":"1px"},"left":[]}},"backgroundColor":"theme-1","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull has-theme-1-background-color has-background" style="border-bottom-color:var(--wp--preset--color--theme-5);border-bottom-width:1px;padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40);box-shadow:var(--wp--preset--shadow--soft)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Header Row', 'Name of the header row group', 'ipsum' ); ?>"},"align":"wide","layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group alignwide"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Site Logo and Title', 'Name of the group holding the site logo and title', 'ipsum' ); ?>"},"style":{"layout":{"selfStretch":"fill","flexSize":null},"spacing":{"blockGap":{"left":"var:preset|spacing|30"}}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:site-logo {"width":48,"shouldSyncIcon":true,"style":{"spacing":{"padding":{"top":"0","bottom":"0","left":"0","right":"0"},"margin":{"top":"0","bottom":"0","left":"0","right":"0"}},"color":{"duotone":"var:preset|duotone|duotone-1"}}} /-->
+
+<!-- wp:site-title {"level":0,"style":{"typography":{"textTransform":"uppercase","fontStyle":"normal","fontWeight":"700"},"elements":{"link":{"color":{"text":"var:preset|color|theme-2"},"typography":{"textDecoration":"none"},":hover":{"color":{"text":"var:preset|color|theme-6"}}}}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:navigation {"overlay":"navigation-overlay","icon":"menu","fontSize":"small","ariaLabel":"<?php esc_attr_e( 'Primary', 'ipsum' ); ?>"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/header-vertical.php b/wp-content/themes/ipsum/patterns/header-vertical.php
new file mode 100644
index 0000000000..740f3d7488
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/header-vertical.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Title: Header Vertical
+ * Slug: ipsum/header-vertical
+ * Categories: header
+ * Block Types: core/template-part/header
+ * Viewport width: 1280
+ * Description: A sticky, viewport-tall header rail — the menu button on top and the site title running vertically beneath it.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Header Vertical', 'Name of the vertical header group', 'ipsum' ); ?>"},"align":"wide","style":{"position":{"type":"sticky","top":"0px"},"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}},"layout":{"type":"default"}} -->
+<div class="wp-block-group alignwide" style="padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Header Vertical Wrapper', 'Name of the vertical header wrapper group', 'ipsum' ); ?>"},"align":"wide","style":{"dimensions":{"minHeight":"100vh"}},"layout":{"type":"constrained","justifyContent":"center"}} -->
+<div class="wp-block-group alignwide" style="min-height:100vh"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Vertical Stack', 'Name of the vertical stack group', 'ipsum' ); ?>"},"align":"full","layout":{"type":"flex","orientation":"vertical","justifyContent":"center","verticalAlignment":"center"}} -->
+<div class="wp-block-group alignfull"><!-- wp:navigation {"overlayMenu":"always","overlayBackgroundColor":"theme-6","overlayTextColor":"theme-1","ariaLabel":"<?php esc_attr_e( 'Primary', 'ipsum' ); ?>","style":{"spacing":{"margin":{"top":"0"},"blockGap":"var:preset|spacing|20"},"layout":{"selfStretch":"fit","flexSize":null}},"layout":{"type":"flex","justifyContent":"right","orientation":"horizontal","flexWrap":"wrap"}} /-->
+
+<!-- wp:site-title {"level":0,"style":{"typography":{"writingMode":"vertical-rl","textTransform":"uppercase"}},"fontSize":"small"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/hero-colophon.php b/wp-content/themes/ipsum/patterns/hero-colophon.php
new file mode 100644
index 0000000000..36d7b06a47
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hero-colophon.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Title: Hero Colophon
+ * Slug: ipsum/hero-colophon
+ * Categories: banner, about, header
+ * Block Types: core/template-part/header
+ * Viewport width: 1280
+ * Description: A blogger card introducing the person behind the blog — site icon, greeting, short bio and the menu.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Hero Colophon', 'Name of the hero colophon group', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"0","bottom":"0"},"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Colophon Card', 'Name of the colophon card group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40","left":"var:preset|spacing|40","right":"var:preset|spacing|40"},"blockGap":"var:preset|spacing|30"},"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}}},"backgroundColor":"theme-5","layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group has-theme-5-background-color has-background" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)"><!-- wp:site-logo {"width":80,"style":{"color":{"duotone":"var:preset|duotone|duotone-1"}}} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Colophon Text', 'Name of the colophon text group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"},"layout":{"selfStretch":"fill","flexSize":null}},"layout":{"type":"default"}} -->
+<div class="wp-block-group"><!-- wp:heading {"fontSize":"2-x-large"} -->
+<h2 class="wp-block-heading has-2-x-large-font-size"><?php echo esc_html__( 'Howdy, I’m Lorem', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph {"style":{"spacing":{"margin":{"bottom":"var:preset|spacing|40"}}}} -->
+<p style="margin-bottom:var(--wp--preset--spacing--40)"><?php echo esc_html__( 'Teacher in Porto. This is where I keep my notes on books, slow mornings, and the occasional recipe that actually works.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:navigation {"overlay":"navigation-overlay","icon":"menu","style":{"spacing":{"blockGap":"var:preset|spacing|30"},"typography":{"fontStyle":"normal","fontWeight":"700"}},"fontSize":"small","ariaLabel":"<?php esc_attr_e( 'Primary', 'ipsum' ); ?>"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/hero-epigraph.php b/wp-content/themes/ipsum/patterns/hero-epigraph.php
new file mode 100644
index 0000000000..21b54b684c
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hero-epigraph.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Title: Hero Epigraph
+ * Slug: ipsum/hero-epigraph
+ * Categories: banner, header
+ * Block Types: core/template-part/header
+ * Viewport width: 1280
+ * Description: A full-height opening statement — site title and menu on top, one oversized line about the blog, and an invitation to read.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Hero Epigraph', 'Name of the hero epigraph group', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"default"}} -->
+<div class="wp-block-group" style="margin-top:0;margin-bottom:0"><!-- wp:cover {"overlayColor":"theme-1","isUserOverlayColor":true,"minHeight":400,"contentPosition":"top center","isDark":false,"textColor":"theme-2","style":{"spacing":{"padding":{"right":"var:preset|spacing|40","left":"var:preset|spacing|40"},"blockGap":"var:preset|spacing|60"}},"layout":{"type":"default"}} -->
+<div class="wp-block-cover is-light has-theme-2-color has-text-color has-custom-content-position is-position-top-center" style="padding-right:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40);min-height:400px"><span aria-hidden="true" class="wp-block-cover__background has-theme-1-background-color has-background-dim-100 has-background-dim"></span><div class="wp-block-cover__inner-container"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Header Wrapper', 'Name of the group wrapping the header', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|40"}}},"layout":{"type":"default"}} -->
+<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--40)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Header Row', 'Name of the header row group', 'ipsum' ); ?>"},"align":"full","layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group alignfull"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Tagline', 'Name of the group holding the site title and tagline', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"},"layout":{"selfStretch":"fill","flexSize":null}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:site-title {"level":0} /-->
+
+<!-- wp:site-tagline {"style":{"layout":{"selfStretch":"fill","flexSize":null}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:navigation {"overlay":"navigation-overlay","icon":"menu","fontSize":"small","ariaLabel":"<?php esc_attr_e( 'Primary', 'ipsum' ); ?>"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:heading {"align":"wide","style":{"spacing":{"margin":{"top":"var:preset|spacing|80","bottom":"var:preset|spacing|70"}}},"fitText":true} -->
+<h2 class="wp-block-heading alignwide has-fit-text" style="margin-top:var(--wp--preset--spacing--80);margin-bottom:var(--wp--preset--spacing--70)">
+<?php
+/* Translators: %1$s is a line break HTML element */
+printf( esc_html__( 'I cook, I run, and I write about both%1$s—usually in that order.', 'ipsum' ), '<br>' );
+?>
+</h2>
+<!-- /wp:heading -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Read the blog line', 'Name of the group holding the read the blog line', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:paragraph {"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:600"><?php echo esc_html__( 'Read the blog.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div></div>
+<!-- /wp:cover --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/hidden-404.php b/wp-content/themes/ipsum/patterns/hidden-404.php
new file mode 100644
index 0000000000..afce9b2a14
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-404.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Title: 404
+ * Slug: ipsum/hidden-404
+ * Inserter: no
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:template-part {"slug":"header"} /-->
+
+<!-- wp:group {"tagName":"main","metadata":{"name":"<?php echo esc_html_x( 'Body', 'Name of the main content area group', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<main class="wp-block-group" style="margin-top:0;margin-bottom:0"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Title', 'Name of the group holding the post title', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:heading {"level":1,"fitText":true} -->
+<h1 class="wp-block-heading has-fit-text"><?php esc_html_e( 'Page not found.', 'ipsum' ); ?></h1>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph -->
+<p><?php esc_html_e( 'The page you are looking for doesn\'t exist, or it has been moved. Please try searching using the form below.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:search {"label":"<?php esc_attr_e( 'Search', 'ipsum' ); ?>","showLabel":false,"placeholder":"<?php esc_attr_e( 'Type here...', 'ipsum' ); ?>","buttonText":"<?php esc_attr_e( 'Search', 'ipsum' ); ?>","buttonPosition":"button-inside","buttonUseIcon":true,"ariaLabel":"<?php echo esc_attr_x( 'Site', 'Accessible name of the search form', 'ipsum' ); ?>"} /--></main>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer"} /-->
diff --git a/wp-content/themes/ipsum/patterns/hidden-archive-sidebar.php b/wp-content/themes/ipsum/patterns/hidden-archive-sidebar.php
new file mode 100644
index 0000000000..23382a9a4a
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-archive-sidebar.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ * Title: All Archives Sidebar
+ * Slug: ipsum/hidden-archive-sidebar
+ * Template Types: archive, category, tag
+ * Inserter: no
+ * Description: Archive listing beside a classic sidebar with categories and recent posts, on the wide width.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:template-part {"slug":"header"} /-->
+
+<!-- wp:group {"tagName":"main","metadata":{"name":"<?php echo esc_html_x( 'Body', 'Name of the main content area group', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<main class="wp-block-group" style="margin-top:0;margin-bottom:0"><!-- wp:columns {"align":"wide","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|70"}}}} -->
+<div class="wp-block-columns alignwide"><!-- wp:column {"width":"66.66%","layout":{"type":"constrained","justifyContent":"left"}} -->
+<div class="wp-block-column" style="flex-basis:66.66%"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Section Title', 'Name of the group holding the section title', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:query-title {"type":"archive"} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[],"excludeCurrent":null},"metadata":{"categories":["posts"],"name":"<?php echo esc_html_x( 'Archive Simple', 'Name of the Archive Simple query', 'ipsum' ); ?>"},"layout":{"type":"default"}} -->
+<div class="wp-block-query"><!-- wp:post-template {"className":"hover-together","style":{"spacing":{"blockGap":"var:preset|spacing|40"}},"layout":{"type":"default"}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Archive Row', 'Name of the archive row group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:post-title {"isLink":true,"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"large"} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Date and Categories', 'Name of the group holding the post date and categories', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20","padding":{"bottom":"var:preset|spacing|50"}},"border":{"bottom":{"color":"var:preset|color|theme-4","style":"dotted","width":"1px"},"top":[],"right":[],"left":[]}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group" style="border-bottom-color:var(--wp--preset--color--theme-4);border-bottom-style:dotted;border-bottom-width:1px;padding-bottom:var(--wp--preset--spacing--50)"><!-- wp:post-date {"format":"M j","isLink":true} /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-terms {"term":"category"} /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-time-to-read /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'No Results Wrapper', 'Name of the group shown when a query has no results', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:query-no-results -->
+<!-- wp:paragraph -->
+<p><?php esc_html_e( 'No posts have been published in this section yet.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+<!-- /wp:query-no-results --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Pagination Wrapper', 'Name of the group wrapping the pagination', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="margin-top:var(--wp--preset--spacing--60)"><!-- wp:query-pagination {"paginationArrow":"arrow","layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></div>
+<!-- /wp:query --></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"width":"33.33%"} -->
+<div class="wp-block-column" style="flex-basis:33.33%"><!-- wp:template-part {"slug":"sidebar","area":"uncategorized"} /--></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns --></main>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer-wide","area":"footer"} /-->
+
+<!-- wp:template-part {"slug":"search-bar","className":"sticky-bottom"} /-->
diff --git a/wp-content/themes/ipsum/patterns/hidden-archive.php b/wp-content/themes/ipsum/patterns/hidden-archive.php
new file mode 100644
index 0000000000..0d090bf886
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-archive.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Title: All Archives
+ * Slug: ipsum/hidden-archive
+ * Template Types: archive, category, tag
+ * Inserter: no
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:template-part {"slug":"header"} /-->
+
+<!-- wp:group {"tagName":"main","metadata":{"name":"<?php echo esc_html_x( 'Body', 'Group block defining the main content area', 'ipsum' ); ?>"},"layout":{"type":"default"}} -->
+<main class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Section Title', 'Group containing the archive title', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:query-title {"type":"archive"} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:pattern {"slug":"ipsum/archive-compact"} /--></main>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer"} /-->
+
+<!-- wp:template-part {"slug":"search-bar","className":"sticky-bottom"} /-->
diff --git a/wp-content/themes/ipsum/patterns/hidden-comments.php b/wp-content/themes/ipsum/patterns/hidden-comments.php
new file mode 100644
index 0000000000..a76897c822
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-comments.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Title: Comments
+ * Slug: ipsum/hidden-comments
+ * Inserter: no
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:comments {"className":"wp-block-comments-query-loop"} -->
+<div class="wp-block-comments wp-block-comments-query-loop"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Comments Titles', 'Name of the group holding the comments heading and count', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|20"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group"><!-- wp:heading -->
+<h2 class="wp-block-heading"><?php esc_html_e( 'Comments', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:comments-title {"level":3,"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:comment-template -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Comment Template Wrapper', 'Name of the group wrapping each comment', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"0","margin":{"bottom":"var:preset|spacing|60"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"left"}} -->
+<div class="wp-block-group" style="margin-bottom:var(--wp--preset--spacing--60)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Comment Template Details', 'Name of the group holding the comment details', 'ipsum' ); ?>"},"style":{"layout":{"selfStretch":"fill","flexSize":null},"spacing":{"blockGap":"var:preset|spacing|30","padding":{"top":"var:preset|spacing|30","bottom":"var:preset|spacing|30","left":"0","right":"0"}}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group" style="padding-top:var(--wp--preset--spacing--30);padding-right:0;padding-bottom:var(--wp--preset--spacing--30);padding-left:0"><!-- wp:avatar {"size":48,"isLink":true,"linkTarget":"_blank"} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Comment Date and Author', 'Name of the group holding the comment date and author', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"0"}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group"><!-- wp:comment-author-name /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Comment Date and Edit', 'Name of the group holding the comment date and edit link', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|20","left":"0"}}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:comment-date /-->
+
+<!-- wp:comment-edit-link {"className":"dot-before"} /-->
+
+<!-- wp:comment-reply-link {"className":"dot-before"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:comment-content /--></div>
+<!-- /wp:group -->
+<!-- /wp:comment-template -->
+
+<!-- wp:comments-pagination {"layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:comments-pagination-previous /-->
+
+<!-- wp:comments-pagination-next /-->
+<!-- /wp:comments-pagination -->
+
+<!-- wp:post-comments-form {"style":{"spacing":{"margin":{"top":"var:preset|spacing|70"}}}} /--></div>
+<!-- /wp:comments -->
diff --git a/wp-content/themes/ipsum/patterns/hidden-index-sidebar.php b/wp-content/themes/ipsum/patterns/hidden-index-sidebar.php
new file mode 100644
index 0000000000..33bc60155e
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-index-sidebar.php
@@ -0,0 +1,84 @@
+<?php
+/**
+ * Title: Index Sidebar
+ * Slug: ipsum/hidden-index-sidebar
+ * Template Types: index, home
+ * Inserter: no
+ * Description: The blog feed beside a classic sidebar with categories and recent posts, on the wide width.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:template-part {"slug":"header","area":"header"} /-->
+
+<!-- wp:group {"tagName":"main","metadata":{"name":"<?php echo esc_html_x( 'Body', 'Name of the main content area group', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<main class="wp-block-group" style="margin-top:0;margin-bottom:0"><!-- wp:heading {"level":1,"metadata":{"name":"<?php echo esc_html_x( 'Posts Heading', 'Name of the visually hidden posts heading', 'ipsum' ); ?>"},"className":"screen-reader-text"} -->
+<h1 class="wp-block-heading screen-reader-text"><?php esc_html_e( 'Posts', 'ipsum' ); ?></h1>
+<!-- /wp:heading -->
+
+<!-- wp:columns {"align":"wide","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|70"}}}} -->
+<div class="wp-block-columns alignwide"><!-- wp:column {"width":"66.66%","layout":{"type":"constrained","justifyContent":"left"}} -->
+<div class="wp-block-column" style="flex-basis:66.66%"><!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[],"excludeCurrent":null},"layout":{"type":"default"}} -->
+<div class="wp-block-query"><!-- wp:post-template {"layout":{"type":"default"}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Template Wrapper', 'Name of the group wrapping each post in a list', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"bottom":"var:preset|spacing|70"},"padding":{"bottom":"var:preset|spacing|70"}}},"layout":{"type":"default"}} -->
+<div class="wp-block-group" style="margin-bottom:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Featured Image Wrapper', 'Name of the group wrapping the featured image', 'ipsum' ); ?>"},"align":"full","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:post-featured-image {"isLink":true,"sizeSlug":"large","style":{"spacing":{"padding":{"bottom":"var:preset|spacing|30"}}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Title', 'Name of the group holding the post title', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:post-title {"isLink":true,"fontSize":"2-x-large"} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Date and Categories', 'Name of the group holding the post date and categories', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:post-date {"isLink":true} /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-terms {"term":"category"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:post-content {"align":"full","layout":{"type":"constrained","justifyContent":"center"}} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Comments Wrapper', 'Name of the group wrapping the comments', 'ipsum' ); ?>"},"align":"full","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Comments and CTA', 'Name of the group holding the comments and the call to action', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:post-comments-link /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:paragraph {"metadata":{"bindings":{"content":{"source":"ipsum/comments-cta"}},"name":"<?php echo esc_html_x( 'Comments CTA', 'Name of the comments call to action paragraph', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( 'Join the conversation', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:paragraph {"metadata":{"name":"›"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '›', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Pagination Wrapper', 'Name of the group wrapping the pagination', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-top:var(--wp--preset--spacing--60)"><!-- wp:query-pagination {"paginationArrow":"arrow","layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></div>
+<!-- /wp:query --></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"width":"33.33%"} -->
+<div class="wp-block-column" style="flex-basis:33.33%"><!-- wp:template-part {"slug":"sidebar","area":"uncategorized"} /--></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns --></main>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer-wide","area":"footer"} /-->
+
+<!-- wp:template-part {"slug":"search-bar","area":"uncategorized","className":"sticky-bottom"} /-->
diff --git a/wp-content/themes/ipsum/patterns/hidden-index.php b/wp-content/themes/ipsum/patterns/hidden-index.php
new file mode 100644
index 0000000000..9eafea8af3
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-index.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * Title: Index
+ * Slug: ipsum/hidden-index
+ * Template Types: index, home
+ * Inserter: no
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:template-part {"slug":"header","area":"header"} /-->
+
+<!-- wp:group {"tagName":"main","metadata":{"name":"<?php echo esc_html_x( 'Body', 'Name of the main content area group', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<main class="wp-block-group" style="margin-top:0;margin-bottom:0"><!-- wp:heading {"level":1,"metadata":{"name":"<?php echo esc_html_x( 'Posts Heading', 'Name of the visually hidden posts heading', 'ipsum' ); ?>"},"className":"screen-reader-text"} -->
+<h1 class="wp-block-heading screen-reader-text"><?php esc_html_e( 'Posts', 'ipsum' ); ?></h1>
+<!-- /wp:heading -->
+
+<!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[],"excludeCurrent":null},"align":"full","layout":{"type":"default"}} -->
+<div class="wp-block-query alignfull"><!-- wp:post-template {"layout":{"type":"default"}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Template Wrapper', 'Name of the group wrapping each post in a list', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"bottom":"var:preset|spacing|70"},"padding":{"bottom":"var:preset|spacing|70"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-bottom:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Featured Image Wrapper', 'Name of the group wrapping the featured image', 'ipsum' ); ?>"},"align":"full","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:post-featured-image {"isLink":true,"sizeSlug":"large","style":{"spacing":{"padding":{"bottom":"var:preset|spacing|20"}}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Title', 'Name of the group holding the post title', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:post-title {"isLink":true,"fontSize":"2-x-large"} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Date and Categories', 'Name of the group holding the post date and categories', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:post-date {"isLink":true} /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-terms {"term":"category"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:post-content {"align":"full","layout":{"type":"constrained"}} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Comments Wrapper', 'Name of the group wrapping the comments', 'ipsum' ); ?>"},"align":"full","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Comments and CTA', 'Name of the group holding the comments and the call to action', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:post-comments-link /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:paragraph {"metadata":{"bindings":{"content":{"source":"ipsum/comments-cta"}},"name":"<?php echo esc_html_x( 'Comments CTA', 'Name of the comments call to action paragraph', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( 'Join the conversation', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:paragraph {"metadata":{"name":"›"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '›', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Pagination Wrapper', 'Name of the group wrapping the pagination', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="margin-top:var(--wp--preset--spacing--60)"><!-- wp:query-pagination {"paginationArrow":"arrow","layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></div>
+<!-- /wp:query --></main>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer"} /-->
+
+<!-- wp:template-part {"slug":"search-bar","area":"uncategorized","className":"sticky-bottom"} /-->
diff --git a/wp-content/themes/ipsum/patterns/hidden-keep-reading.php b/wp-content/themes/ipsum/patterns/hidden-keep-reading.php
new file mode 100644
index 0000000000..6e3c6aee48
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-keep-reading.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Title: Keep Reading
+ * Slug: ipsum/hidden-keep-reading
+ * Inserter: no
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Keep Reading', 'Name of the keep reading group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"default"}} -->
+<div class="wp-block-group"><!-- wp:heading {"metadata":{"name":"<?php echo esc_html_x( 'Keep Reading Label', 'Name of the keep reading heading', 'ipsum' ); ?>"},"style":{"typography":{"letterSpacing":"0rem"}},"fontSize":"small"} -->
+<h2 class="wp-block-heading has-small-font-size" style="letter-spacing:0rem"><?php esc_html_e( 'Keep Reading', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:query {"query":{"perPage":3,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"ignore","inherit":false,"taxQuery":null,"parents":[],"excludeCurrent":true},"layout":{"type":"default"}} -->
+<div class="wp-block-query"><!-- wp:post-template {"style":{"spacing":{"blockGap":"var:preset|spacing|50"}},"layout":{"type":"default"}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Recent Post', 'Name of the group holding one recent post', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"0"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group"><!-- wp:post-title {"level":3,"isLink":true,"style":{"typography":{"fontStyle":"normal","fontWeight":"500","letterSpacing":"0rem"}},"fontSize":"medium"} /-->
+
+<!-- wp:post-date {"format":"human-diff","isLink":true,"style":{"typography":{"fontStyle":"normal","fontWeight":"400","letterSpacing":"0rem"}}} /--></div>
+<!-- /wp:group -->
+<!-- /wp:post-template --></div>
+<!-- /wp:query --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/hidden-page-no-title.php b/wp-content/themes/ipsum/patterns/hidden-page-no-title.php
new file mode 100644
index 0000000000..0b218a6f0f
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-page-no-title.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Title: Pages No Title
+ * Slug: ipsum/hidden-page-no-title
+ * Template Types: page
+ * Inserter: no
+ * Description: A page without a title, for layouts built from patterns.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:template-part {"slug":"header"} /-->
+
+<!-- wp:group {"tagName":"main","metadata":{"name":"<?php echo esc_html_x( 'Body', 'Name of the main content area group', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<main class="wp-block-group" style="margin-top:0;margin-bottom:0"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Content', 'Name of the group holding the post content', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"padding":{"top":"0","bottom":"0","left":"0","right":"0"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull" style="padding-top:0;padding-right:0;padding-bottom:0;padding-left:0"><!-- wp:post-content {"lock":{"move":false,"remove":true},"align":"full","layout":{"type":"constrained"}} /--></div>
+<!-- /wp:group --></main>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer"} /-->
+
+<!-- wp:template-part {"slug":"search-bar","className":"sticky-bottom"} /-->
diff --git a/wp-content/themes/ipsum/patterns/hidden-page-sidebar.php b/wp-content/themes/ipsum/patterns/hidden-page-sidebar.php
new file mode 100644
index 0000000000..cd067249b7
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-page-sidebar.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Title: Pages Sidebar
+ * Slug: ipsum/hidden-page-sidebar
+ * Template Types: page
+ * Inserter: no
+ * Description: A page beside a classic sidebar with categories and recent posts, on the wide width.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:template-part {"slug":"header"} /-->
+
+<!-- wp:group {"tagName":"main","metadata":{"name":"<?php echo esc_html_x( 'Body', 'Name of the main content area group', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<main class="wp-block-group" style="margin-top:0;margin-bottom:0"><!-- wp:columns {"align":"wide","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|70"}}}} -->
+<div class="wp-block-columns alignwide"><!-- wp:column {"width":"66.66%","layout":{"type":"constrained","justifyContent":"left"}} -->
+<div class="wp-block-column" style="flex-basis:66.66%"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Featured Image Wrapper', 'Name of the group wrapping the featured image', 'ipsum' ); ?>"},"align":"full","layout":{"type":"default"}} -->
+<div class="wp-block-group alignfull"><!-- wp:post-featured-image {"style":{"spacing":{"padding":{"bottom":"var:preset|spacing|30"}}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Title', 'Name of the group holding the post title', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:post-title {"level":1,"fontSize":"2-x-large"} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Content', 'Name of the group holding the post content', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:post-content {"layout":{"type":"default"}} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"width":"33.33%"} -->
+<div class="wp-block-column" style="flex-basis:33.33%"><!-- wp:template-part {"slug":"sidebar","area":"uncategorized"} /--></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns --></main>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer-wide","area":"footer"} /-->
+
+<!-- wp:template-part {"slug":"search-bar","className":"sticky-bottom"} /-->
diff --git a/wp-content/themes/ipsum/patterns/hidden-page.php b/wp-content/themes/ipsum/patterns/hidden-page.php
new file mode 100644
index 0000000000..c61afee125
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-page.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * Title: Pages
+ * Slug: ipsum/hidden-page
+ * Template Types: page
+ * Inserter: no
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:template-part {"slug":"header"} /-->
+
+<!-- wp:group {"tagName":"main","metadata":{"name":"<?php echo esc_html_x( 'Body', 'Name of the main content area group', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<main class="wp-block-group" style="margin-top:0;margin-bottom:0"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Featured Image Wrapper', 'Name of the group wrapping the featured image', 'ipsum' ); ?>"},"align":"full","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:post-featured-image {"sizeSlug":"large","style":{"spacing":{"padding":{"bottom":"var:preset|spacing|30"}}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Title', 'Name of the group holding the post title', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:post-title {"level":1,"fontSize":"2-x-large"} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:post-content {"align":"full","layout":{"type":"constrained"}} /--></main>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer"} /-->
+
+<!-- wp:template-part {"slug":"search-bar","className":"sticky-bottom"} /-->
diff --git a/wp-content/themes/ipsum/patterns/hidden-search-bar.php b/wp-content/themes/ipsum/patterns/hidden-search-bar.php
new file mode 100644
index 0000000000..3b0fd0689e
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-search-bar.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Title: search-bar
+ * Slug: ipsum/hidden-search-bar
+ * Inserter: no
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Search Bar', 'Name of the search bar group', 'ipsum' ); ?>","patternName":"ipsum/hidden-search-bar"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40","left":"var:preset|spacing|40","right":"var:preset|spacing|40"}}},"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"}} -->
+<div class="wp-block-group" style="padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)"><!-- wp:search {"label":"<?php esc_attr_e( 'Search', 'ipsum' ); ?>","showLabel":false,"buttonText":"<?php esc_attr_e( 'Search', 'ipsum' ); ?>","buttonPosition":"button-only","buttonUseIcon":true,"ariaLabel":"<?php echo esc_attr_x( 'Site', 'Accessible name of the search form', 'ipsum' ); ?>"} /--></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/hidden-search.php b/wp-content/themes/ipsum/patterns/hidden-search.php
new file mode 100644
index 0000000000..03d2f0abc1
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-search.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * Title: search
+ * Slug: ipsum/hidden-search
+ * Inserter: no
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:template-part {"slug":"header"} /-->
+
+<!-- wp:group {"tagName":"main","metadata":{"name":"<?php echo esc_html_x( 'Body', 'Name of the main content area group', 'ipsum' ); ?>"},"layout":{"type":"default"}} -->
+<main class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Section Title', 'Name of the group holding the section title', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:query-title {"type":"search"} /-->
+
+<!-- wp:search {"label":"<?php esc_attr_e( 'Search', 'ipsum' ); ?>","showLabel":false,"placeholder":"<?php esc_attr_e( 'Type here...', 'ipsum' ); ?>","buttonText":"<?php esc_attr_e( 'Search', 'ipsum' ); ?>","buttonPosition":"button-inside","buttonUseIcon":true,"ariaLabel":"<?php echo esc_attr_x( 'Site', 'Accessible name of the search form', 'ipsum' ); ?>"} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":true,"taxQuery":null,"parents":[],"excludeCurrent":null},"metadata":{"categories":["posts"],"name":"<?php echo esc_html_x( 'Archive Compact', 'Name of the Archive Compact query', 'ipsum' ); ?>"},"layout":{"type":"default"}} -->
+<div class="wp-block-query"><!-- wp:post-template {"className":"hover-together","style":{"spacing":{"blockGap":"var:preset|spacing|60"}},"layout":{"type":"default"}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Template Wrapper', 'Name of the group wrapping each post in a list', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"bottom":"var:preset|spacing|50"},"padding":{"bottom":"var:preset|spacing|50"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-bottom:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Title', 'Name of the group holding the post title', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:post-title {"isLink":true,"fontSize":"2-x-large"} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Date and Categories', 'Name of the group holding the post date and categories', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:post-date {"isLink":true} /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-terms {"term":"category"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Template Copy', 'Name of the group holding the post excerpt and read more link', 'ipsum' ); ?>"},"layout":{"type":"constrained","justifyContent":"left"}} -->
+<div class="wp-block-group"><!-- wp:post-excerpt {"showMoreOnNewLine":false} /-->
+
+<!-- wp:read-more {"content":"<?php esc_attr_e( 'Read more ›', 'ipsum' ); ?>"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'No Results Wrapper', 'Name of the group shown when a query has no results', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:query-no-results -->
+<!-- wp:paragraph -->
+<p><?php esc_html_e( 'Sorry, but nothing matched your search terms. Please try again with some different keywords.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+<!-- /wp:query-no-results --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Pagination Wrapper', 'Name of the group wrapping the pagination', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="margin-top:var(--wp--preset--spacing--60)"><!-- wp:query-pagination {"paginationArrow":"arrow","layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></div>
+<!-- /wp:query --></main>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer"} /-->
diff --git a/wp-content/themes/ipsum/patterns/hidden-sidebar.php b/wp-content/themes/ipsum/patterns/hidden-sidebar.php
new file mode 100644
index 0000000000..873cc368a7
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-sidebar.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Title: sidebar
+ * Slug: ipsum/hidden-sidebar
+ * Inserter: no
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"tagName":"aside","metadata":{"name":"<?php echo esc_html_x( 'Sidebar', 'Name of the sidebar group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|50"}},"layout":{"type":"default"}} -->
+<aside class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Categories', 'Name of the categories group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"default"}} -->
+<div class="wp-block-group"><!-- wp:heading {"metadata":{"name":"<?php echo esc_html_x( 'Categories Label', 'Name of the categories heading', 'ipsum' ); ?>"},"style":{"typography":{"letterSpacing":"0rem"}},"fontSize":"small"} -->
+<h2 class="wp-block-heading has-small-font-size" style="letter-spacing:0rem"><?php esc_html_e( 'Categories', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:categories {"fontSize":"small"} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Recent Posts', 'Name of the recent posts group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"default"}} -->
+<div class="wp-block-group"><!-- wp:heading {"metadata":{"name":"<?php echo esc_html_x( 'Recent Posts Label', 'Name of the recent posts heading', 'ipsum' ); ?>"},"style":{"typography":{"letterSpacing":"0rem"}},"fontSize":"small"} -->
+<h2 class="wp-block-heading has-small-font-size" style="letter-spacing:0rem"><?php esc_html_e( 'Recent posts', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:query {"query":{"perPage":5,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"ignore","inherit":false,"taxQuery":null,"parents":[],"excludeCurrent":null},"layout":{"type":"default"}} -->
+<div class="wp-block-query"><!-- wp:post-template {"layout":{"type":"default"}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Recent Post', 'Name of the group holding one recent post', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"0"},"margin":{"bottom":"var:preset|spacing|40"}}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group" style="margin-bottom:var(--wp--preset--spacing--40)"><!-- wp:post-title {"level":3,"isLink":true,"style":{"typography":{"fontStyle":"normal","fontWeight":"600","letterSpacing":"0rem"}},"fontSize":"small"} /-->
+
+<!-- wp:post-date {"format":"human-diff","isLink":true,"style":{"typography":{"fontStyle":"normal","fontWeight":"400","letterSpacing":"0rem"}}} /--></div>
+<!-- /wp:group -->
+<!-- /wp:post-template --></div>
+<!-- /wp:query --></div>
+<!-- /wp:group --></aside>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/hidden-single-sidebar.php b/wp-content/themes/ipsum/patterns/hidden-single-sidebar.php
new file mode 100644
index 0000000000..1a6f6195d9
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-single-sidebar.php
@@ -0,0 +1,80 @@
+<?php
+/**
+ * Title: Single Posts Sidebar
+ * Slug: ipsum/hidden-single-sidebar
+ * Template Types: single
+ * Inserter: no
+ * Description: A single post beside a classic sidebar with categories and recent posts, on the wide width.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:template-part {"slug":"header"} /-->
+
+<!-- wp:group {"tagName":"main","metadata":{"name":"<?php echo esc_html_x( 'Body', 'Name of the main content area group', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<main class="wp-block-group" style="margin-top:0;margin-bottom:0"><!-- wp:columns {"align":"wide","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|70"}}}} -->
+<div class="wp-block-columns alignwide"><!-- wp:column {"width":"66.66%","layout":{"type":"constrained","justifyContent":"left"}} -->
+<div class="wp-block-column" style="flex-basis:66.66%"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Featured Image Wrapper', 'Name of the group wrapping the featured image', 'ipsum' ); ?>"},"align":"full","layout":{"type":"default"}} -->
+<div class="wp-block-group alignfull"><!-- wp:post-featured-image {"style":{"spacing":{"padding":{"bottom":"var:preset|spacing|30"}}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Title', 'Name of the group holding the post title', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:post-title {"level":1,"fontSize":"2-x-large"} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Date and Categories', 'Name of the group holding the post date and categories', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:post-date {"isLink":true} /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-terms {"term":"category"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Content', 'Name of the group holding the post content', 'ipsum' ); ?>"},"layout":{"type":"constrained","justifyContent":"center"}} -->
+<div class="wp-block-group"><!-- wp:post-content {"layout":{"type":"constrained","justifyContent":"center"}} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Tags and author', 'Name of the group holding the tags and author', 'ipsum' ); ?>"},"layout":{"type":"default"}} -->
+<div class="wp-block-group"><!-- wp:post-terms {"term":"post_tag","separator":"  ","prefix":"<?php esc_attr_e( 'Tags: ', 'ipsum' ); ?>","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}}} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Author Card', 'Name of the author card group', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"var:preset|spacing|60","bottom":"var:preset|spacing|60"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group" style="margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Avatar and Author', 'Name of the group holding the author avatar and name', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"flex","flexWrap":"nowrap","verticalAlignment":"stretch","justifyContent":"left"}} -->
+<div class="wp-block-group"><!-- wp:avatar {"size":64} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Written by Author Name', 'Name of the group holding the byline and author name', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"0","padding":{"right":"var:preset|spacing|30","left":"var:preset|spacing|30"}},"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}}},"backgroundColor":"theme-5","layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group has-theme-5-background-color has-background" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Written by', 'Name of the byline paragraph', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( 'Written by&nbsp;', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-author-name {"isLink":true} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:separator -->
+<hr class="wp-block-separator has-alpha-channel-opacity"/>
+<!-- /wp:separator -->
+
+<!-- wp:pattern {"slug":"ipsum/hidden-comments"} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:separator -->
+<hr class="wp-block-separator has-alpha-channel-opacity"/>
+<!-- /wp:separator -->
+
+<!-- wp:pattern {"slug":"ipsum/hidden-keep-reading"} /--></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"width":"33.33%"} -->
+<div class="wp-block-column" style="flex-basis:33.33%"><!-- wp:template-part {"slug":"sidebar","area":"uncategorized"} /--></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns --></main>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer-wide","area":"footer"} /-->
+
+<!-- wp:template-part {"slug":"search-bar","className":"sticky-bottom"} /-->
diff --git a/wp-content/themes/ipsum/patterns/hidden-single.php b/wp-content/themes/ipsum/patterns/hidden-single.php
new file mode 100644
index 0000000000..d48ec8647f
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/hidden-single.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * Title: Single Posts
+ * Slug: ipsum/hidden-single
+ * Template Types: single
+ * Inserter: no
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:template-part {"slug":"header"} /-->
+
+<!-- wp:group {"tagName":"main","metadata":{"name":"<?php echo esc_html_x( 'Body', 'Name of the main content area group', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<main class="wp-block-group" style="margin-top:0;margin-bottom:0"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Featured Image Wrapper', 'Name of the group wrapping the featured image', 'ipsum' ); ?>"},"align":"full","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:post-featured-image {"sizeSlug":"large","style":{"spacing":{"padding":{"bottom":"var:preset|spacing|30"}}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Title', 'Name of the group holding the post title', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:post-title {"level":1,"fontSize":"2-x-large"} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Date and Categories', 'Name of the group holding the post date and categories', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:post-date {"isLink":true} /-->
+
+<!-- wp:paragraph {"metadata":{"name":"·"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-terms {"term":"category"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Content', 'Name of the group holding the post content', 'ipsum' ); ?>"},"align":"full","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:post-content {"align":"full","layout":{"type":"constrained"}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:post-terms {"term":"post_tag","separator":"  ","prefix":"<?php esc_attr_e( 'Tags: ', 'ipsum' ); ?>","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}}} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Author Card', 'Name of the author card group', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"var:preset|spacing|60","bottom":"var:preset|spacing|60"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group" style="margin-top:var(--wp--preset--spacing--60);margin-bottom:var(--wp--preset--spacing--60)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Avatar and Author', 'Name of the group holding the author avatar and name', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"flex","flexWrap":"nowrap","verticalAlignment":"stretch","justifyContent":"left"}} -->
+<div class="wp-block-group"><!-- wp:avatar {"size":64} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Written by Author Name', 'Name of the group holding the byline and author name', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"0","padding":{"right":"var:preset|spacing|30","left":"var:preset|spacing|30"}},"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}}},"backgroundColor":"theme-5","layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group has-theme-5-background-color has-background" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-right:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Written by', 'Name of the byline paragraph', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( 'Written by&nbsp;', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-author-name {"isLink":true} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:separator -->
+<hr class="wp-block-separator has-alpha-channel-opacity"/>
+<!-- /wp:separator -->
+
+<!-- wp:pattern {"slug":"ipsum/hidden-comments"} /-->
+
+<!-- wp:separator -->
+<hr class="wp-block-separator has-alpha-channel-opacity"/>
+<!-- /wp:separator -->
+
+<!-- wp:pattern {"slug":"ipsum/hidden-keep-reading"} /--></main>
+<!-- /wp:group -->
+
+<!-- wp:template-part {"slug":"footer"} /-->
+
+<!-- wp:template-part {"slug":"search-bar","className":"sticky-bottom"} /-->
diff --git a/wp-content/themes/ipsum/patterns/kind-words.php b/wp-content/themes/ipsum/patterns/kind-words.php
new file mode 100644
index 0000000000..21eeb508df
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/kind-words.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Title: Kind Words
+ * Slug: ipsum/kind-words
+ * Categories: testimonials
+ * Viewport width: 1280
+ * Description: Two reader quotes on toast cards, each with an avatar with rounded corners and a one-line attribution.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Kind Words', 'Name of the kind words group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|60","bottom":"var:preset|spacing|60"},"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Quote Outer Block', 'Name of the quote card group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|30","bottom":"var:preset|spacing|30","left":"var:preset|spacing|30","right":"var:preset|spacing|30"}},"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}}},"backgroundColor":"theme-5","layout":{"type":"constrained"}} -->
+<div class="wp-block-group has-theme-5-background-color has-background" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><!-- wp:image {"width":"80px","aspectRatio":"1","scale":"cover","focalPoint":{"x":0.5,"y":0.5},"sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full is-resized"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-avatar-cora.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'Black-and-white portrait of a woman with short curly hair in a dark blazer.', 'Alt text for a reader portrait', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover;object-position:50% 50%;width:80px;height:auto"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:quote {"className":"is-style-plain","style":{"typography":{"fontStyle":"normal","fontWeight":"400"},"spacing":{"blockGap":"var:preset|spacing|40"}}} -->
+<blockquote class="wp-block-quote is-style-plain" style="font-style:normal;font-weight:400"><!-- wp:paragraph -->
+<p><?php esc_html_e( '“I subscribed for the essays and stayed for the pictures. It’s the only email I open slowly.”', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --><cite><?php esc_html_e( 'June Alvarado, Porto', 'ipsum' ); ?></cite></blockquote>
+<!-- /wp:quote --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Quote Outer Block', 'Name of the quote card group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|30","bottom":"var:preset|spacing|30","left":"var:preset|spacing|30","right":"var:preset|spacing|30"}},"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}}},"backgroundColor":"theme-5","layout":{"type":"constrained"}} -->
+<div class="wp-block-group has-theme-5-background-color has-background" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><!-- wp:image {"width":"80px","aspectRatio":"1","scale":"cover","sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full is-resized"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-avatar-iris.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'Black-and-white portrait of a smiling woman with curly hair.', 'Alt text for a reader portrait', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover;width:80px;height:auto"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:quote {"className":"is-style-plain","style":{"typography":{"fontStyle":"normal","fontWeight":"400"},"spacing":{"blockGap":"var:preset|spacing|40"}}} -->
+<blockquote class="wp-block-quote is-style-plain" style="font-style:normal;font-weight:400"><!-- wp:paragraph -->
+<p><?php esc_html_e( '“Reads like a letter from a friend who takes their time. Even the quiet weeks feel on purpose.”', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --><cite><?php esc_html_e( 'Maria Mercer, Leipzig', 'ipsum' ); ?></cite></blockquote>
+<!-- /wp:quote --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/navigation-overlay.php b/wp-content/themes/ipsum/patterns/navigation-overlay.php
new file mode 100644
index 0000000000..b9abd1041b
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/navigation-overlay.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Title: Navigation Overlay
+ * Slug: ipsum/navigation-overlay
+ * Categories: navigation
+ * Block Types: core/template-part/navigation-overlay
+ * Viewport width: 1280
+ * Description: The theme’s default navigation overlay — centered logo, site title and tagline, and a large vertical menu on a dark background.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Navigation Overlay', 'Name of the navigation overlay group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"right":"var:preset|spacing|40","left":"var:preset|spacing|40","top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}},"dimensions":{"minHeight":"100vh"},"elements":{"link":{"color":{"text":"var:preset|color|theme-1"}}}},"backgroundColor":"theme-6","textColor":"theme-1","layout":{"type":"default"}} -->
+<div class="wp-block-group has-theme-1-color has-theme-6-background-color has-text-color has-background has-link-color" style="min-height:100vh;padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Action Bar', 'Name of the action bar group', 'ipsum' ); ?>"},"align":"wide","layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"}} -->
+<div class="wp-block-group alignwide"><!-- wp:navigation-overlay-close /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Navigation Content', 'Name of the navigation content group', 'ipsum' ); ?>"},"align":"wide","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Site Logo Wrapper', 'Name of the group wrapping the site logo', 'ipsum' ); ?>"},"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"center"}} -->
+<div class="wp-block-group"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Site Logo', 'Name of the site logo group', 'ipsum' ); ?>"},"style":{"dimensions":{"minHeight":"80px"}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"center","verticalAlignment":"center"}} -->
+<div class="wp-block-group" style="min-height:80px"><!-- wp:site-logo {"width":80,"isLink":false,"align":"center"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Tagline', 'Name of the group holding the site title and tagline', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"0","bottom":"0"},"margin":{"top":"var:preset|spacing|30","bottom":"var:preset|spacing|30"},"blockGap":{"top":"0"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"center"}} -->
+<div class="wp-block-group" style="margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30);padding-top:0;padding-bottom:0"><!-- wp:site-title {"level":0,"style":{"typography":{"textAlign":"center"},"spacing":{"margin":{"top":"0","bottom":"0"}}},"fontSize":"large"} /-->
+
+<!-- wp:site-tagline {"style":{"typography":{"textAlign":"center"},"spacing":{"margin":{"top":"0","bottom":"0"}}},"fontSize":"medium"} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Navigation', 'Name of the navigation group', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)"><!-- wp:navigation {"showSubmenuIcon":false,"submenuVisibility":"always","overlayMenu":"never","style":{"typography":{"textTransform":"uppercase"}},"fontSize":"2-x-large","layout":{"type":"flex","orientation":"vertical","justifyContent":"center"},"ariaLabel":"<?php echo esc_attr_x( 'Expanded', 'Accessible name of the navigation in the overlay', 'ipsum' ); ?>"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/overlay-contents.php b/wp-content/themes/ipsum/patterns/overlay-contents.php
new file mode 100644
index 0000000000..dedfec5d92
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/overlay-contents.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * Title: Overlay Contents
+ * Slug: ipsum/overlay-contents
+ * Categories: navigation
+ * Block Types: core/template-part/navigation-overlay
+ * Viewport width: 1280
+ * Description: A navigation overlay working as the site’s table of contents — a large menu list with submenus in view and a search field underneath.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Overlay Contents', 'Name of the navigation overlay contents group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"right":"var:preset|spacing|40","left":"var:preset|spacing|40","top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}},"dimensions":{"minHeight":"100vh"},"elements":{"link":{"color":{"text":"var:preset|color|theme-6"}}}},"backgroundColor":"theme-1","textColor":"theme-6","layout":{"type":"default"}} -->
+<div class="wp-block-group has-theme-6-color has-theme-1-background-color has-text-color has-background has-link-color" style="min-height:100vh;padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Action Bar', 'Name of the action bar group', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"padding":{"top":"var:preset|spacing|20","bottom":"var:preset|spacing|20"}}},"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"}} -->
+<div class="wp-block-group alignwide" style="padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)"><!-- wp:navigation-overlay-close {"style":{"elements":{"link":{"color":{"text":"var:preset|color|theme-2"}}}},"textColor":"theme-2"} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Navigation', 'Name of the group holding the site title and navigation', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"},"layout":{"selfStretch":"fill","flexSize":null}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group"><!-- wp:heading {"metadata":{"name":"<?php echo esc_html_x( 'Nav Title', 'Name of the navigation title heading', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"},"elements":{"link":{"color":{"text":"var:preset|color|theme-2"}}}},"textColor":"theme-2","fontSize":"small","fontFamily":"manrope"} -->
+<h2 class="wp-block-heading has-theme-2-color has-text-color has-link-color has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( 'Menu', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:navigation {"textColor":"theme-2","showSubmenuIcon":false,"submenuVisibility":"always","overlayMenu":"never","style":{"typography":{"letterSpacing":"-0.02rem"}},"fontSize":"2-x-large","layout":{"type":"flex","orientation":"vertical"},"ariaLabel":"<?php echo esc_attr_x( 'Expanded', 'Accessible name of the navigation in the overlay', 'ipsum' ); ?>"} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:search {"label":"<?php esc_attr_e( 'Search', 'ipsum' ); ?>","buttonText":"<?php esc_attr_e( 'Search', 'ipsum' ); ?>","buttonPosition":"button-inside","buttonUseIcon":true,"style":{"spacing":{"margin":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50"}}},"ariaLabel":"<?php echo esc_attr_x( 'Menu', 'Accessible name of the search form in the navigation overlay', 'ipsum' ); ?>"} /--></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/overlay-profile.php b/wp-content/themes/ipsum/patterns/overlay-profile.php
new file mode 100644
index 0000000000..79048f94a4
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/overlay-profile.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Title: Overlay Profile
+ * Slug: ipsum/overlay-profile
+ * Categories: navigation
+ * Block Types: core/template-part/navigation-overlay
+ * Viewport width: 1280
+ * Description: A navigation overlay led by the author — avatar, name and role over the menu, extra links, and a full-width subscribe button.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Overlay Profile', 'Name of the profile overlay group', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"right":"var:preset|spacing|40","left":"var:preset|spacing|40","top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"},"blockGap":"var:preset|spacing|50"},"dimensions":{"minHeight":"100vh"}},"backgroundColor":"theme-1","layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group has-theme-1-background-color has-background" style="min-height:100vh;padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Action Bar', 'Name of the action bar group', 'ipsum' ); ?>"},"align":"wide","layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"}} -->
+<div class="wp-block-group alignwide"><!-- wp:navigation-overlay-close /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Identity', 'Name of the identity group', 'ipsum' ); ?>"},"align":"wide","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide"><!-- wp:image {"width":"160px","aspectRatio":"1","scale":"cover","focalPoint":{"x":0.5,"y":1},"sizeSlug":"full","linkDestination":"none","align":"center"} -->
+<figure class="wp-block-image aligncenter size-full is-resized"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-portrait-tall.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php esc_attr_e( 'Portrait of the author.', 'ipsum' ); ?>" style="aspect-ratio:1;object-fit:cover;object-position:50% 100%;width:160px;height:auto"/></figure>
+<!-- /wp:image -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Identity', 'Name of the identity group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|20","left":"var:preset|spacing|20"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"center"}} -->
+<div class="wp-block-group"><!-- wp:heading {"style":{"typography":{"textAlign":"center"}},"fontSize":"x-large"} -->
+<h2 class="wp-block-heading has-text-align-center has-x-large-font-size"><?php esc_html_e( 'Lorem', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Role', 'Name of the role paragraph', 'ipsum' ); ?>"},"style":{"typography":{"textAlign":"center"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-text-align-center has-manrope-font-family has-small-font-size"><?php esc_html_e( 'Teacher in Porto', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Menu', 'Name of the menu group', 'ipsum' ); ?>"},"align":"full","style":{"layout":{"selfStretch":"fill","flexSize":null}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:navigation {"showSubmenuIcon":false,"submenuVisibility":"always","overlayMenu":"never","fontSize":"large","layout":{"type":"flex","orientation":"vertical","justifyContent":"center"},"ariaLabel":"<?php echo esc_attr_x( 'Expanded', 'Accessible name of the navigation in the overlay', 'ipsum' ); ?>"} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Extra Links', 'Name of the extra links group', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20","margin":{"top":"var:preset|spacing|40"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"center"}} -->
+<div class="wp-block-group" style="margin-top:var(--wp--preset--spacing--40)"><!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Link', 'Name of the link paragraph', 'ipsum' ); ?>"},"style":{"typography":{"textAlign":"center"}}} -->
+<p class="has-text-align-center"><a href="#"><?php esc_html_e( 'Subscribe', 'ipsum' ); ?></a></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Link', 'Name of the link paragraph', 'ipsum' ); ?>"},"style":{"typography":{"textAlign":"center"}}} -->
+<p class="has-text-align-center"><a href="#"><?php esc_html_e( 'Say hello', 'ipsum' ); ?></a></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Link', 'Name of the link paragraph', 'ipsum' ); ?>"},"style":{"typography":{"textAlign":"center"}}} -->
+<p class="has-text-align-center"><a href="#"><?php esc_html_e( 'See the dates', 'ipsum' ); ?></a></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( 'Link', 'Name of the link paragraph', 'ipsum' ); ?>"},"style":{"typography":{"textAlign":"center"}}} -->
+<p class="has-text-align-center"><a href="#"><?php esc_html_e( 'RSS', 'ipsum' ); ?></a></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Overlay Footer', 'Name of the overlay footer group', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group alignwide"><!-- wp:buttons {"layout":{"type":"flex","justifyContent":"stretch"}} -->
+<div class="wp-block-buttons"><!-- wp:button {"style":{"dimensions":{"width":"var:preset|dimension|100"}}} -->
+<div class="wp-block-button"><a class="wp-block-button__link wp-element-button"><?php esc_html_e( 'Get the next post!', 'ipsum' ); ?></a></div>
+<!-- /wp:button --></div>
+<!-- /wp:buttons --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/page-bio.php b/wp-content/themes/ipsum/patterns/page-bio.php
new file mode 100644
index 0000000000..17beb6a083
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/page-bio.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Title: Page Bio
+ * Slug: ipsum/page-bio
+ * Categories: ipsum_page
+ * Block Types: core/post-content
+ * Post Types: page
+ * Viewport width: 1280
+ * Description: A bio card on the toast ground — portrait beside the name, a short introduction, and social links.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Page Bio', 'Name of the bio page group', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:cover {"overlayColor":"theme-6","isUserOverlayColor":true,"minHeight":50,"style":{"spacing":{"padding":{"right":"var:preset|spacing|30","left":"var:preset|spacing|30","top":"var:preset|spacing|30","bottom":"var:preset|spacing|30"},"margin":{"top":"0","bottom":"0"}},"elements":{"link":{"color":{"text":"var:preset|color|theme-1"}}},"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}}},"textColor":"theme-1","layout":{"type":"constrained"}} -->
+<div class="wp-block-cover has-theme-1-color has-text-color has-link-color" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30);min-height:50px"><span aria-hidden="true" class="wp-block-cover__background has-theme-6-background-color has-background-dim-100 has-background-dim"></span><div class="wp-block-cover__inner-container"><!-- wp:columns {"verticalAlignment":"center","style":{"spacing":{"margin":{"top":"0","bottom":"0"}}}} -->
+<div class="wp-block-columns are-vertically-aligned-center" style="margin-top:0;margin-bottom:0"><!-- wp:column {"verticalAlignment":"center"} -->
+<div class="wp-block-column is-vertically-aligned-center"><!-- wp:image {"aspectRatio":"3/4","scale":"cover","sizeSlug":"full","linkDestination":"none","align":"center","style":{"border":{"radius":{"topLeft":"5px","topRight":"5px","bottomLeft":"5px","bottomRight":"5px"}}}} -->
+<figure class="wp-block-image aligncenter size-full has-custom-border"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-portrait-tall.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php esc_attr_e( 'Portrait of the author.', 'ipsum' ); ?>" style="border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;aspect-ratio:3/4;object-fit:cover"/></figure>
+<!-- /wp:image --></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"verticalAlignment":"center","style":{"spacing":{"padding":{"bottom":"var:preset|spacing|30"}}}} -->
+<div class="wp-block-column is-vertically-aligned-center" style="padding-bottom:var(--wp--preset--spacing--30)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Paragraph', 'Name of the Title and Paragraph element', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|20"}}},"layout":{"type":"flex","orientation":"vertical","justifyContent":"stretch"}} -->
+<div class="wp-block-group"><!-- wp:heading {"style":{"typography":{"textAlign":"left"}},"fontSize":"x-large"} -->
+<h2 class="wp-block-heading has-text-align-left has-x-large-font-size"><?php esc_html_e( 'Lorem', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph {"fontSize":"small"} -->
+<p class="has-small-font-size"><?php esc_html_e( 'Teacher in Porto, keeping a quiet blog of essays, pictures, and sounds—notes on books, slow mornings, and the occasional recipe that actually works. Start with the essays, or just say hi.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:social-links {"iconColor":"currentColor","iconColorValue":"currentColor","className":"is-style-logos-only"} -->
+<ul class="wp-block-social-links has-icon-color is-style-logos-only"><!-- wp:social-link {"url":"#","service":"linkedin"} /-->
+
+<!-- wp:social-link {"url":"#","service":"whatsapp"} /-->
+
+<!-- wp:social-link {"url":"#","service":"mastodon"} /--></ul>
+<!-- /wp:social-links --></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns --></div></div>
+<!-- /wp:cover --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/page-blog-home.php b/wp-content/themes/ipsum/patterns/page-blog-home.php
new file mode 100644
index 0000000000..04f70741d9
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/page-blog-home.php
@@ -0,0 +1,106 @@
+<?php
+/**
+ * Title: Page Blog Home
+ * Slug: ipsum/page-blog-home
+ * Categories: ipsum_page
+ * Block Types: core/post-content
+ * Post Types: page
+ * Viewport width: 1280
+ * Description: A blog home as a page — the opening statement, the latest posts in full, and the subscribe invitation.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Text Statement', 'Name of the Text Statement element', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"padding":{"top":"var:preset|spacing|60","bottom":"var:preset|spacing|60"},"blockGap":"var:preset|spacing|20"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Text Statement Wrapper', 'Name of the Text Statement Wrapper element', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"0"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:paragraph {"className":"is-style-text-quote-mark","style":{"typography":{"fontStyle":"normal","fontWeight":"400","textAlign":"left","lineHeight":"1.3"}},"fontSize":"x-large"} -->
+<p class="has-text-align-left is-style-text-quote-mark has-x-large-font-size" style="font-style:normal;font-weight:400;line-height:1.3"><?php echo wp_kses_post( __( 'I teach and write about books, slow mornings, and the occasional recipe that actually works—start with the <a href="#">essays</a>.', 'ipsum' ) ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Full Posts', 'Name of the Full Posts element', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"margin":{"top":"0","bottom":"0"},"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)"><!-- wp:query {"query":{"perPage":10,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","author":"","search":"","exclude":[],"sticky":"","inherit":false,"taxQuery":null,"parents":[],"excludeCurrent":null},"align":"full","layout":{"type":"default"}} -->
+<div class="wp-block-query alignfull"><!-- wp:post-template {"layout":{"type":"default"}} -->
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Template Wrapper', 'Name of the group wrapping each post in a list', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"bottom":"var:preset|spacing|70"},"padding":{"bottom":"var:preset|spacing|70"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-bottom:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Featured Image Wrapper', 'Name of the group wrapping the featured image', 'ipsum' ); ?>"},"align":"full","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:post-featured-image {"isLink":true,"sizeSlug":"large","style":{"spacing":{"padding":{"bottom":"var:preset|spacing|30"}}}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Title', 'Name of the group holding the post title', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:post-title {"isLink":true,"fontSize":"2-x-large"} /-->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Date and Categories', 'Name of the group holding the post date and categories', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:post-date {"isLink":true} /-->
+
+<!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( '·', 'Name of the · element', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:post-terms {"term":"category"} /--></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Post Content', 'Name of the group holding the post content', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"padding":{"top":"0","bottom":"0","left":"0","right":"0"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull" style="padding-top:0;padding-right:0;padding-bottom:0;padding-left:0"><!-- wp:post-content {"align":"full","layout":{"type":"constrained"}} /--></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Comments Wrapper', 'Name of the group wrapping the comments', 'ipsum' ); ?>"},"align":"full","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Comments and CTA', 'Name of the group holding the comments and the call to action', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap"}} -->
+<div class="wp-block-group"><!-- wp:post-comments-link /-->
+
+<!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( '·', 'Name of the · element', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '·', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:paragraph {"metadata":{"bindings":{"content":{"source":"ipsum/comments-cta"}},"name":"<?php echo esc_html_x( 'Comments CTA', 'Name of the comments call to action paragraph', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small","fontFamily":"manrope"} -->
+<p class="has-manrope-font-family has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( 'Join the conversation', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:paragraph {"metadata":{"name":"<?php echo esc_html_x( '›', 'Name of the › element', 'ipsum' ); ?>"},"style":{"typography":{"fontStyle":"normal","fontWeight":"600"}},"fontSize":"small"} -->
+<p class="has-small-font-size" style="font-style:normal;font-weight:600"><?php esc_html_e( '›', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
+<!-- /wp:post-template -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'No Results Wrapper', 'Name of the group shown when a query has no results', 'ipsum' ); ?>"},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:query-no-results -->
+<!-- wp:paragraph -->
+<p><?php esc_html_e( 'No posts have been published in this section yet.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+<!-- /wp:query-no-results --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Pagination Wrapper', 'Name of the group wrapping the pagination', 'ipsum' ); ?>"},"align":"wide","layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide"><!-- wp:query-pagination {"paginationArrow":"arrow","layout":{"type":"flex","justifyContent":"space-between"}} -->
+<!-- wp:query-pagination-previous /-->
+
+<!-- wp:query-pagination-next /-->
+<!-- /wp:query-pagination --></div>
+<!-- /wp:group --></div>
+<!-- /wp:query --></div>
+<!-- /wp:group -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Subscribe', 'Name of the Subscribe element', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"margin":{"top":"0","bottom":"0"},"padding":{"top":"var:preset|spacing|60","bottom":"var:preset|spacing|70"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Subscribe Wrapper', 'Name of the Subscribe Wrapper element', 'ipsum' ); ?>"},"style":{"border":{"radius":"10px"},"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40","left":"var:preset|spacing|40","right":"var:preset|spacing|40"}},"elements":{"link":{"color":{"text":"var:preset|color|theme-1"}}}},"backgroundColor":"theme-6","textColor":"theme-1","layout":{"type":"constrained","justifyContent":"left"}} -->
+<div class="wp-block-group has-theme-1-color has-theme-6-background-color has-text-color has-background has-link-color" style="border-radius:10px;padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Paragraph', 'Name of the Title and Paragraph element', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:heading {"style":{"typography":{"textAlign":"left"}},"fontSize":"x-large"} -->
+<h2 class="wp-block-heading has-text-align-left has-x-large-font-size"><?php esc_html_e( 'The next post can find you.', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph {"style":{"typography":{"textAlign":"left"}}} -->
+<p class="has-text-align-left"><?php esc_html_e( 'Leave your address, and new essays will arrive as they’re published—no noise.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group -->
+
+<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"left"}} -->
+<div class="wp-block-buttons"><!-- wp:button {"textColor":"theme-1","className":"is-style-outline","style":{"elements":{"link":{"color":{"text":"var:preset|color|theme-1"}}}},"borderColor":"theme-1"} -->
+<div class="wp-block-button is-style-outline"><a class="wp-block-button__link has-theme-1-color has-text-color has-link-color has-border-color has-theme-1-border-color wp-element-button"><?php esc_html_e( 'Subscribe', 'ipsum' ); ?></a></div>
+<!-- /wp:button --></div>
+<!-- /wp:buttons --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/page-soon.php b/wp-content/themes/ipsum/patterns/page-soon.php
new file mode 100644
index 0000000000..99c18ad1de
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/page-soon.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Title: Page Soon
+ * Slug: ipsum/page-soon
+ * Categories: ipsum_page
+ * Block Types: core/post-content
+ * Post Types: page
+ * Viewport width: 1280
+ * Description: A full-height coming-soon cover — the tagline as headline, a short note from the author, and a button to subscribe.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Page Soon', 'Name of the Page Soon element', 'ipsum' ); ?>"},"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)"><!-- wp:cover {"url":"<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-monobloc.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>","overlayColor":"theme-4","isUserOverlayColor":true,"contentPosition":"top left","sizeSlug":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|30","bottom":"var:preset|spacing|70"}},"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}},"dimensions":{"aspectRatio":"2/3"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-cover has-custom-content-position is-position-top-left" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--70)"><img class="wp-block-cover__image-background size-full" alt="" src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-monobloc.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" data-object-fit="cover"/><span aria-hidden="true" class="wp-block-cover__background has-theme-4-background-color has-background-dim-100 has-background-dim"></span><div class="wp-block-cover__inner-container"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Cover Inner Wrapper', 'Name of the Cover Inner Wrapper element', 'ipsum' ); ?>"},"style":{"border":{"radius":{"topLeft":"5px","topRight":"5px","bottomLeft":"5px","bottomRight":"5px"}},"elements":{"link":{"color":{"text":"var:preset|color|theme-2"}}},"spacing":{"padding":{"right":"var:preset|spacing|30","left":"var:preset|spacing|30","top":"var:preset|spacing|30","bottom":"var:preset|spacing|30"}}},"backgroundColor":"theme-1","textColor":"theme-2","layout":{"type":"default"}} -->
+<div class="wp-block-group has-theme-2-color has-theme-1-background-color has-text-color has-background has-link-color" style="border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--30)"><!-- wp:heading {"style":{"typography":{"textAlign":"left"}},"fontSize":"2-x-large"} -->
+<h2 class="wp-block-heading has-text-align-left has-2-x-large-font-size"><?php esc_html_e( 'Until real words arrive.', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Paragraph and Buttons', 'Name of the Paragraph and Buttons element', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":"var:preset|spacing|40"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group"><!-- wp:paragraph {"style":{"typography":{"textAlign":"left"}},"fontSize":"small"} -->
+<p class="has-text-align-left has-small-font-size"><?php esc_html_e( 'This page is a placeholder in the most honest sense: a blog is being written behind it. There will be essays that take their time, pictures standing in for the hours they were taken, and the occasional sound worth pressing play on. Leave your address and the first post will find you the moment it\'s ready.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph -->
+
+<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"left"}} -->
+<div class="wp-block-buttons"><!-- wp:button {"style":{"border":{"radius":{"topLeft":"5px","topRight":"5px","bottomLeft":"5px","bottomRight":"5px"}}}} -->
+<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" style="border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-left-radius:5px;border-bottom-right-radius:5px"><?php esc_html_e( 'Get the first post', 'ipsum' ); ?></a></div>
+<!-- /wp:button --></div>
+<!-- /wp:buttons --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group --></div></div>
+<!-- /wp:cover --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/text-alternating.php b/wp-content/themes/ipsum/patterns/text-alternating.php
new file mode 100644
index 0000000000..23b49480e5
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/text-alternating.php
@@ -0,0 +1,74 @@
+<?php
+/**
+ * Title: Text Alternating
+ * Slug: ipsum/text-alternating
+ * Categories: text, about
+ * Viewport width: 1280
+ * Description: Rows alternating image and text — introductions for the blog’s sections.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Text Alternating', 'Name of the Text Alternating element', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"margin":{"top":"0","bottom":"0"},"padding":{"top":"var:preset|spacing|60","bottom":"var:preset|spacing|60"},"blockGap":"var:preset|spacing|50"}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--60)"><!-- wp:columns {"verticalAlignment":"center","align":"wide"} -->
+<div class="wp-block-columns alignwide are-vertically-aligned-center"><!-- wp:column {"verticalAlignment":"center"} -->
+<div class="wp-block-column is-vertically-aligned-center"><!-- wp:image {"aspectRatio":"4/3","scale":"cover","focalPoint":{"x":0.5,"y":0.5},"sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-cover-essays.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'Pale branching channels running through dark green moss, seen from above.', 'Alt text for the Essays section image', 'ipsum' ); ?>" style="aspect-ratio:4/3;object-fit:cover;object-position:50% 50%"/></figure>
+<!-- /wp:image --></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"verticalAlignment":"center"} -->
+<div class="wp-block-column is-vertically-aligned-center"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Paragraph', 'Name of the Title and Paragraph element', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|30"}}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group"><!-- wp:heading {"style":{"border":{"bottom":{"color":"var:preset|color|theme-5","width":"5px"}}},"fontSize":"x-large"} -->
+<h2 class="wp-block-heading has-x-large-font-size" style="border-bottom-color:var(--wp--preset--color--theme-5);border-bottom-width:5px"><?php esc_html_e( 'Essays', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph {"fontSize":"small"} -->
+<p class="has-small-font-size"><?php esc_html_e( 'Longer thoughts, written slowly and published when they’re ready. They start somewhere small—a sentence misheard, a note in a margin—and take their time getting to the point.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns -->
+
+<!-- wp:columns {"verticalAlignment":"center","align":"wide"} -->
+<div class="wp-block-columns alignwide are-vertically-aligned-center"><!-- wp:column {"verticalAlignment":"center"} -->
+<div class="wp-block-column is-vertically-aligned-center"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Paragraph', 'Name of the Title and Paragraph element', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|30"}}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group"><!-- wp:heading {"style":{"border":{"bottom":{"color":"var:preset|color|theme-5","width":"5px"}}},"fontSize":"x-large"} -->
+<h2 class="wp-block-heading has-x-large-font-size" style="border-bottom-color:var(--wp--preset--color--theme-5);border-bottom-width:5px"><?php esc_html_e( 'Pictures', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph {"fontSize":"small"} -->
+<p class="has-small-font-size"><?php esc_html_e( 'Photographs are placeholders too, in their way—each one standing in for the hour it was taken. These stand for the hours between posts.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"verticalAlignment":"center"} -->
+<div class="wp-block-column is-vertically-aligned-center"><!-- wp:image {"aspectRatio":"4/3","scale":"cover","focalPoint":{"x":0.5,"y":0.5},"sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-cover-pictures.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'Close-up of ruffled white petals against a dark green background.', 'Alt text for the Pictures section image', 'ipsum' ); ?>" style="aspect-ratio:4/3;object-fit:cover;object-position:50% 50%"/></figure>
+<!-- /wp:image --></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns -->
+
+<!-- wp:columns {"verticalAlignment":"center","align":"wide"} -->
+<div class="wp-block-columns alignwide are-vertically-aligned-center"><!-- wp:column {"verticalAlignment":"center"} -->
+<div class="wp-block-column is-vertically-aligned-center"><!-- wp:image {"aspectRatio":"4/3","scale":"cover","focalPoint":{"x":0.5,"y":0.5},"sizeSlug":"full","linkDestination":"none"} -->
+<figure class="wp-block-image size-full"><img src="<?php echo esc_url( get_template_directory_uri() ); ?>/assets/images/ipsum-cover-sounds.webp?ver=<?php echo esc_attr( wp_get_theme( get_template() )->get( 'Version' ) ); ?>" alt="<?php echo esc_attr_x( 'Pale winding lines crossing dark green grass, seen from above.', 'Alt text for the Sounds section image', 'ipsum' ); ?>" style="aspect-ratio:4/3;object-fit:cover;object-position:50% 50%"/></figure>
+<!-- /wp:image --></div>
+<!-- /wp:column -->
+
+<!-- wp:column {"verticalAlignment":"center"} -->
+<div class="wp-block-column is-vertically-aligned-center"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Title and Paragraph', 'Name of the Title and Paragraph element', 'ipsum' ); ?>"},"style":{"spacing":{"blockGap":{"top":"var:preset|spacing|30"}}},"layout":{"type":"flex","orientation":"vertical"}} -->
+<div class="wp-block-group"><!-- wp:heading {"style":{"border":{"bottom":{"color":"var:preset|color|theme-5","width":"5px"}}},"fontSize":"x-large"} -->
+<h2 class="wp-block-heading has-x-large-font-size" style="border-bottom-color:var(--wp--preset--color--theme-5);border-bottom-width:5px"><?php esc_html_e( 'Sounds', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:paragraph {"fontSize":"small"} -->
+<p class="has-small-font-size"><?php esc_html_e( 'Writing has a soundtrack, even when it’s just the keyboard. Sometimes a recording makes it into a post; this is where those live.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:column --></div>
+<!-- /wp:columns --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/text-faqs.php b/wp-content/themes/ipsum/patterns/text-faqs.php
new file mode 100644
index 0000000000..a73f7862f5
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/text-faqs.php
@@ -0,0 +1,70 @@
+<?php
+/**
+ * Title: Text FAQs
+ * Slug: ipsum/text-faqs
+ * Categories: text
+ * Viewport width: 1280
+ * Description: Questions and answers in accordions — a flush stack with dotted rules, the first item open.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Text FAQs', 'Name of the Text FAQs element', 'ipsum' ); ?>"},"style":{"spacing":{"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="margin-top:0;margin-bottom:0"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Text FAQs Wrapper', 'Name of the Text FAQs Wrapper element', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50"}}},"layout":{"type":"default"}} -->
+<div class="wp-block-group" style="padding-top:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50)"><!-- wp:heading {"fontSize":"x-large"} -->
+<h2 class="wp-block-heading has-x-large-font-size"><?php esc_html_e( 'Frequently Asked Questions', 'ipsum' ); ?></h2>
+<!-- /wp:heading -->
+
+<!-- wp:accordion {"style":{"spacing":{"blockGap":"0"}}} -->
+<div role="group" class="wp-block-accordion"><!-- wp:accordion-item {"openByDefault":true} -->
+<div class="wp-block-accordion-item is-open"><!-- wp:accordion-heading {"fontSize":"medium"} -->
+<h3 class="wp-block-accordion-heading has-icon has-icon-right has-medium-font-size"><button type="button" class="wp-block-accordion-heading__toggle"><span class="wp-block-accordion-heading__toggle-title"><?php esc_html_e( 'Who writes here?', 'ipsum' ); ?></span><span class="wp-block-accordion-heading__toggle-icon" aria-hidden="true">+</span></button></h3>
+<!-- /wp:accordion-heading -->
+
+<!-- wp:accordion-panel -->
+<div role="region" class="wp-block-accordion-panel"><!-- wp:paragraph -->
+<p><?php esc_html_e( 'A teacher in Porto. The longer introduction lives on the About page, but the short version is: books, slow mornings, and the occasional recipe that actually works.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:accordion-panel --></div>
+<!-- /wp:accordion-item -->
+
+<!-- wp:accordion-item -->
+<div class="wp-block-accordion-item"><!-- wp:accordion-heading {"fontSize":"medium"} -->
+<h3 class="wp-block-accordion-heading has-icon has-icon-right has-medium-font-size"><button type="button" class="wp-block-accordion-heading__toggle"><span class="wp-block-accordion-heading__toggle-title"><?php esc_html_e( 'Where should I start?', 'ipsum' ); ?></span><span class="wp-block-accordion-heading__toggle-icon" aria-hidden="true">+</span></button></h3>
+<!-- /wp:accordion-heading -->
+
+<!-- wp:accordion-panel -->
+<div role="region" class="wp-block-accordion-panel"><!-- wp:paragraph -->
+<p><?php esc_html_e( 'The essays. Or open the archive and pick a title you like—the dates matter less than they look.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:accordion-panel --></div>
+<!-- /wp:accordion-item -->
+
+<!-- wp:accordion-item -->
+<div class="wp-block-accordion-item"><!-- wp:accordion-heading {"fontSize":"medium"} -->
+<h3 class="wp-block-accordion-heading has-icon has-icon-right has-medium-font-size"><button type="button" class="wp-block-accordion-heading__toggle"><span class="wp-block-accordion-heading__toggle-title"><?php esc_html_e( 'When do new posts go up?', 'ipsum' ); ?></span><span class="wp-block-accordion-heading__toggle-icon" aria-hidden="true">+</span></button></h3>
+<!-- /wp:accordion-heading -->
+
+<!-- wp:accordion-panel -->
+<div role="region" class="wp-block-accordion-panel"><!-- wp:paragraph -->
+<p><?php esc_html_e( 'When a post is ready. The subscription form knows before anyone else does.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:accordion-panel --></div>
+<!-- /wp:accordion-item -->
+
+<!-- wp:accordion-item -->
+<div class="wp-block-accordion-item"><!-- wp:accordion-heading {"fontSize":"medium"} -->
+<h3 class="wp-block-accordion-heading has-icon has-icon-right has-medium-font-size"><button type="button" class="wp-block-accordion-heading__toggle"><span class="wp-block-accordion-heading__toggle-title"><?php esc_html_e( 'Are these questions placeholders?', 'ipsum' ); ?></span><span class="wp-block-accordion-heading__toggle-icon" aria-hidden="true">+</span></button></h3>
+<!-- /wp:accordion-heading -->
+
+<!-- wp:accordion-panel -->
+<div role="region" class="wp-block-accordion-panel"><!-- wp:paragraph -->
+<p><?php esc_html_e( 'Yes—that’s the point. Replace them with the three or four things readers actually ask you, and keep each answer shorter than you first want to.', 'ipsum' ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:accordion-panel --></div>
+<!-- /wp:accordion-item --></div>
+<!-- /wp:accordion --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/text-statement-wide.php b/wp-content/themes/ipsum/patterns/text-statement-wide.php
new file mode 100644
index 0000000000..1b73ccdbf5
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/text-statement-wide.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Title: Text Statement Wide
+ * Slug: ipsum/text-statement-wide
+ * Categories: text
+ * Viewport width: 1280
+ * Description: The statement at band width — the quotation mark and one oversized line, left aligned.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Text Statement Wide', 'Name of the Text Statement Wide element', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"margin":{"top":"0","bottom":"0"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group alignwide" style="margin-top:0;margin-bottom:0"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Text Statement Wide Wrapper', 'Name of the Text Statement Wide Wrapper element', 'ipsum' ); ?>"},"align":"wide","style":{"spacing":{"padding":{"top":"var:preset|spacing|70","bottom":"var:preset|spacing|70"},"blockGap":"var:preset|spacing|20"}},"layout":{"type":"default"}} -->
+<div class="wp-block-group alignwide" style="padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:paragraph {"className":"is-style-text-quote-mark","style":{"typography":{"lineHeight":"1.2","fontStyle":"normal","fontWeight":"400","textAlign":"left"}},"fontSize":"2-x-large"} -->
+<p class="has-text-align-left is-style-text-quote-mark has-2-x-large-font-size" style="font-style:normal;font-weight:400;line-height:1.2"><?php echo wp_kses_post( __( 'I teach and write about books, slow mornings, and the occasional recipe that actually works—start with the <a href="#">essays</a>.', 'ipsum' ) ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/patterns/text-statement.php b/wp-content/themes/ipsum/patterns/text-statement.php
new file mode 100644
index 0000000000..ddb82fc9f8
--- /dev/null
+++ b/wp-content/themes/ipsum/patterns/text-statement.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Title: Text Statement
+ * Slug: ipsum/text-statement
+ * Categories: text
+ * Viewport width: 1280
+ * Description: A one-line statement on the toast card — the opening quotation mark on top, centered, with room for a single link.
+ *
+ * @package Ipsum
+ * @since Ipsum 1.0
+ */
+
+?>
+<!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Text Statement', 'Name of the Text Statement element', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}},"layout":{"type":"constrained"}} -->
+<div class="wp-block-group" style="padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)"><!-- wp:group {"metadata":{"name":"<?php echo esc_html_x( 'Text Statement Wrapper', 'Name of the Text Statement Wrapper element', 'ipsum' ); ?>"},"style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50","left":"var:preset|spacing|40","right":"var:preset|spacing|40"},"blockGap":"var:preset|spacing|30"},"elements":{"link":{"color":{"text":"var:preset|color|theme-1"}}},"border":{"radius":{"topLeft":"10px","topRight":"10px","bottomLeft":"10px","bottomRight":"10px"}}},"backgroundColor":"theme-6","textColor":"theme-1","layout":{"type":"constrained"}} -->
+<div class="wp-block-group has-theme-1-color has-theme-6-background-color has-text-color has-background has-link-color" style="border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--40)"><!-- wp:paragraph {"className":"is-style-text-quote-mark-on-color","style":{"typography":{"lineHeight":"1.3","fontStyle":"normal","fontWeight":"500","letterSpacing":"-0.02rem","textAlign":"center"}},"fontSize":"x-large"} -->
+<p class="has-text-align-center is-style-text-quote-mark-on-color has-x-large-font-size" style="font-style:normal;font-weight:500;letter-spacing:-0.02rem;line-height:1.3"><?php echo wp_kses_post( __( 'I teach and write about books, slow mornings, and the occasional recipe that actually works—start with the <a href="#">essays</a>.', 'ipsum' ) ); ?></p>
+<!-- /wp:paragraph --></div>
+<!-- /wp:group --></div>
+<!-- /wp:group -->
diff --git a/wp-content/themes/ipsum/readme.txt b/wp-content/themes/ipsum/readme.txt
new file mode 100644
index 0000000000..d7deb8fabd
--- /dev/null
+++ b/wp-content/themes/ipsum/readme.txt
@@ -0,0 +1,93 @@
+=== Ipsum ===
+Contributors: wordpressdotorg
+Requires at least: 7.2
+Tested up to: 7.2
+Requires PHP: 7.4
+Stable tag: 1.0
+License: GPLv2 or later
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+
+
+== Description ==
+
+Ipsum is a blank canvas built around the blogging experience, our proposal for what a default theme should be. Named after lorem ipsum, the placeholder that fills a page until real content arrives, it is composed enough to stand on its own and to be transformed the moment people start writing.
+
+== Changelog ==
+
+= 1.0 =
+* Released: December 8, 2026
+
+https://wordpress.org/documentation/article/ipsum-changelog/#Version_1.0
+
+
+== Copyright ==
+
+Ipsum WordPress Theme, (C) 2026 WordPress.org and contributors.
+Ipsum is distributed under the terms of the GNU GPL.
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+
+Ipsum is based on Ichi (https://themeshaper.com/ichi/), (C) Automattic, [GPLv2 or later](http://www.gnu.org/licenses/gpl-2.0.html)
+
+
+== Images ==
+
+Title: screenshot.jpg
+The imagery in the screenshot was generated with AI using Midjourney.
+Author: Henrique Iamarino (https://profiles.wordpress.org/iamarinoh)
+License: CC0 1.0 Universal - dedicated to the public domain by the author.
+License URL: https://creativecommons.org/publicdomain/zero/1.0/
+
+Title: assets/images/ipsum-*.webp
+The images bundled with the theme's patterns were generated with AI using Midjourney.
+Author: Henrique Iamarino (https://profiles.wordpress.org/iamarinoh)
+License: CC0 1.0 Universal - dedicated to the public domain by the author.
+License URL: https://creativecommons.org/publicdomain/zero/1.0/
+
+== Fonts ==
+
+Archivo
+Copyright 2020 The Archivo Project Authors (https://github.com/Omnibus-Type/Archivo)
+License: This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFL
+Source: http://www.omnibus-type.com
+
+Archivo Condensed
+Copyright 2020 The Archivo Project Authors (https://github.com/Omnibus-Type/Archivo)
+License: This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFL
+Source: http://www.omnibus-type.com
+
+Besley
+Copyright 2020 The Besley Project Authors (https://github.com/indestructible-type/Besley)
+License: This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://scripts.sil.org/OFL
+Source: https://indestructibletype.com/Home.html
+
+Inter
+Copyright 2016 The Inter Project Authors (https://github.com/rsms/inter)
+License: This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org
+Source: https://rsms.me/
+
+JetBrains Mono
+Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono)
+License: This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://scripts.sil.org/OFL
+Source: https://www.jetbrains.com
+
+Manrope
+Copyright 2019 The Manrope Project Authors (https://github.com/sharanda/manrope)
+License: This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFL
+Source: http://gent.media
+
+STIX Two Text
+Copyright 2001-2021 The STIX Fonts Project Authors (https://github.com/stipub/stixfonts)
+License: This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://scripts.sil.org/OFL
+Source: https://www.stixfonts.org
+
+
diff --git a/wp-content/themes/ipsum/style.css b/wp-content/themes/ipsum/style.css
new file mode 100644
index 0000000000..854f16bbac
--- /dev/null
+++ b/wp-content/themes/ipsum/style.css
@@ -0,0 +1,309 @@
+/*
+Theme Name: Ipsum
+Theme URI: https://wordpress.org/themes/ipsum/
+Author: the WordPress team
+Author URI: https://wordpress.org
+Description: Ipsum is a blank canvas built around the blogging experience, our proposal for what a default theme should be. Named after lorem ipsum, the placeholder that fills a page until real content arrives, it is composed enough to stand on its own and to be transformed the moment people start writing.
+Requires at least: 7.2
+Tested up to: 7.2
+Requires PHP: 7.4
+Version: 1.0
+License: GNU General Public License v2 or later
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+Text Domain: ipsum
+Tags: one-column, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, blog
+*/
+
+/* Crossfade page transition */
+
+@view-transition {
+	navigation: auto;
+}
+
+/* Font smoothing */
+body {
+	text-rendering: geometricprecision;
+	-webkit-font-smoothing: antialiased;
+	-moz-osx-font-smoothing: grayscale;
+
+	/*
+	 * Let long unbroken strings, such as URLs, break onto the next line
+	 * instead of pushing the page wider than the viewport when zoomed in.
+	 * https://www.w3.org/WAI/WCAG22/Understanding/reflow.html
+	 */
+	overflow-wrap: break-word;
+}
+
+/*
+ * Progressive enhancement to reduce widows and orphans
+ * https://github.com/WordPress/gutenberg/issues/55190
+ */
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+blockquote,
+caption,
+figcaption,
+p {
+	text-wrap: pretty;
+}
+
+/*
+ * Link styles
+ * https://github.com/WordPress/gutenberg/issues/42319
+ * Dotted editorial underlines; !important also keeps the style from being reset
+ * by the text-decoration shorthand emitted in generated global styles.
+ * The span selector catches the editor's inline underline format.
+ */
+a,
+u,
+ins,
+span[style*="text-decoration"] {
+	text-decoration-thickness: 1px !important;
+	text-decoration-style: dotted !important;
+	text-underline-offset: 0.1em;
+}
+
+/*
+ * Breathing room when jumping to in-page anchors (e.g. the comments CTA
+ * landing on #comments or #respond), so targets don't sit flush with the
+ * viewport edge.
+ */
+:target {
+	scroll-margin-block-start: var(--wp--preset--spacing--50);
+}
+
+/*
+ * The comments list starts flush with its heading, unlike the comment form,
+ * whose internal whitespace pads its landing — match their perceived offset.
+ */
+#comments {
+	scroll-margin-block-start: var(--wp--preset--spacing--70);
+}
+
+/*
+ * Change the position of the more block on the front, by making it a block level element.
+ * https://github.com/WordPress/gutenberg/issues/65934
+ */
+.more-link {
+	display: block;
+}
+
+/*
+ * Prevents unnecessary scrollbars while handling long lines of preformatted text.
+ * https://core.trac.wordpress.org/ticket/63875
+ */
+:where(pre) {
+	overflow-x: auto;
+}
+
+/*
+ * Make sure headers and footers have no margin, so the root block gap
+ * never adds spacing the parts don't control themselves.
+ * https://github.com/WordPress/gutenberg/issues/47637
+ */
+header.wp-block-template-part,
+footer.wp-block-template-part {
+	margin-block-start: 0;
+}
+
+/*
+ * Tables. All table styling lives here in one block (theme.json css strings
+ * cannot carry comments, and its table css remaps selectors onto the inner
+ * table) — edit or remove any rule below independently.
+ *
+ * Strokes: every table line — outer border, cell grid, and the rule under
+ * the header — draws in the ink wash, matching the calendar and form fields.
+ */
+.wp-block-table table,
+.wp-block-table th,
+.wp-block-table td {
+	border-color: var(--wp--preset--color--theme-4);
+}
+
+/*
+ * Header row: the palette wash as ground, a single hairline underneath
+ * (!important beats core's `thead { border-bottom: 3px solid }`, whose color
+ * would otherwise resolve to currentColor), and the theme's meta voice —
+ * Manrope, small, bold — for the labels.
+ */
+.wp-block-table thead {
+	background-color: var(--wp--preset--color--theme-5);
+	border-bottom-width: 1px !important;
+	border-bottom-color: var(--wp--preset--color--theme-4);
+}
+
+.wp-block-table thead th {
+	text-align: left;
+	font-family: var(--wp--preset--font-family--manrope);
+	font-size: var(--wp--preset--font-size--small);
+	font-style: normal;
+	font-weight: 700;
+}
+
+/*
+ * Striped tables: tint rows and rule with the palette wash instead of core's
+ * fixed gray, so stripes stay legible under every color variation.
+ */
+.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
+	background-color: var(--wp--preset--color--theme-5);
+}
+
+.wp-block-table.is-style-stripes {
+	border-bottom-color: var(--wp--preset--color--theme-5);
+}
+
+/*
+ * Utility class prefixing an element with the "·" meta separator. Used where
+ * neighbors render conditionally (e.g. the comment Edit link only exists for
+ * users who can edit), so the dot appears and disappears with its element
+ * instead of leaving orphan separators. The padding carries the breathing
+ * room — literal spaces in generated content can collapse — so rows using
+ * this class need no block gap of their own.
+ */
+.dot-before::before {
+	content: "·";
+	font-weight: 600;
+	padding-inline: 0.5em;
+}
+
+/*
+ * Sticky headers: a sticky root block inside a template part has no room to
+ * travel — the part's wrapper element is exactly as tall as its content — so
+ * the wrapper itself must carry the stickiness. Keyed on the class core emits
+ * for the position support, so any header design set to sticky just works.
+ */
+header.wp-block-template-part:has(> .is-position-sticky) {
+	position: sticky;
+	inset-block-start: 0;
+	z-index: 10;
+}
+
+/*
+ * Keep a sticky header clear of the admin bar: it is fixed over the viewport,
+ * so logged-in users would see the header slide beneath it. Core publishes the
+ * bar's height (32px desktop / 46px small screens) as a custom property.
+ */
+.admin-bar header.wp-block-template-part:has(> .is-position-sticky) {
+	inset-block-start: var(--wp-admin--admin-bar--height, 32px);
+}
+
+/*
+ * Short pages: a sticky bottom bar can only pin within the page's own height,
+ * so the site wrapper must reach at least the viewport; main grows to push
+ * the footer and the pinned bar down on pages with little content.
+ */
+.wp-site-blocks {
+	display: flex;
+	flex-direction: column;
+	min-height: 100vh;
+	min-height: calc(100svh - var(--wp-admin--admin-bar--height, 0px));
+}
+
+.wp-site-blocks > main {
+	flex-grow: 1;
+}
+
+/* Utility class for pinning an element to the bottom of the viewport. */
+.sticky-bottom {
+	position: sticky;
+	inset-block-end: 0;
+	z-index: 10;
+	width: fit-content;
+	margin-inline-start: auto;
+}
+
+/*
+ * Quiet search button inside the pinned Search Bar part only: light ground,
+ * outlined; global button states take back over on hover/focus/active.
+ */
+.sticky-bottom .wp-block-search__button.wp-element-button:not(:hover):not(:focus):not(:active) {
+	background-color: var(--wp--preset--color--theme-1);
+	border: 1px dotted var(--wp--preset--color--theme-2);
+	color: var(--wp--preset--color--theme-2);
+}
+
+/*
+ * Utility class for a query loop whose post rows hover as one: hovering any
+ * visible content of a row colors the whole row. Keyed on the row's child
+ * blocks because the row group's own box spans the full alignwide band.
+ */
+.hover-together .wp-block-post > .wp-block-group,
+.hover-together .wp-block-post > .wp-block-group a {
+	transition: color 0.15s ease-out;
+}
+
+.hover-together .wp-block-post > .wp-block-group:has(> :hover),
+.hover-together .wp-block-post > .wp-block-group:has(> :hover) a {
+	color: var(--wp--preset--color--theme-6);
+}
+
+/*
+ * Arrival bar: the blank canvas keeps index and single visually close, so a
+ * thin accent bar sweeps the top of the viewport when a single post loads,
+ * then fades — a quiet confirmation that navigation happened. The sweep is a
+ * scaleX() transform rather than a width change so it runs on the compositor
+ * instead of relaying out and repainting every frame while the page loads.
+ * Transforms have no logical origin, so RTL flips the origin to follow the
+ * reading direction.
+ */
+@media (prefers-reduced-motion: no-preference) {
+	.single::before {
+		content: "";
+		position: fixed;
+		inset-block-start: 0;
+		inset-inline-start: 0;
+		block-size: 3px;
+		inline-size: 100%;
+		background-color: var(--wp--preset--color--theme-3);
+		z-index: 99;
+		pointer-events: none;
+		transform-origin: left;
+		animation: ipsum-arrival 0.9s ease-out forwards;
+	}
+
+	.rtl.single::before {
+		transform-origin: right;
+	}
+
+	.admin-bar.single::before {
+		inset-block-start: var(--wp-admin--admin-bar--height, 32px);
+	}
+
+	@keyframes ipsum-arrival {
+		0% {
+			transform: scaleX(0);
+			opacity: 1;
+		}
+
+		60% {
+			transform: scaleX(1);
+			opacity: 1;
+		}
+
+		100% {
+			transform: scaleX(1);
+			opacity: 0;
+		}
+	}
+}
+
+/* A light tilt-and-settle on the row's featured image when the row is hovered. */
+@media (prefers-reduced-motion: no-preference) {
+	@keyframes tilt-settle {
+		35% {
+			transform: rotate(-1deg);
+		}
+
+		100% {
+			transform: rotate(0deg);
+		}
+	}
+
+	.hover-together .wp-block-post > .wp-block-group:has(> :hover) .wp-block-post-featured-image img {
+		animation: tilt-settle 0.5s ease-out;
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/blocks/crop-contents.json b/wp-content/themes/ipsum/styles/blocks/crop-contents.json
new file mode 100644
index 0000000000..30697e9a7d
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/blocks/crop-contents.json
@@ -0,0 +1,10 @@
+{
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"version": 3,
+	"title": "Crop Contents",
+	"slug": "crop-contents",
+	"blockTypes": ["core/group"],
+	"styles": {
+		"css": "overflow:clip;"
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/blocks/display.json b/wp-content/themes/ipsum/styles/blocks/display.json
new file mode 100644
index 0000000000..16ebb4ee24
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/blocks/display.json
@@ -0,0 +1,13 @@
+{
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"version": 3,
+	"title": "Display",
+	"slug": "text-display",
+	"blockTypes": ["core/heading", "core/paragraph", "core/post-title", "core/site-title", "core/query-title"],
+	"styles": {
+		"typography": {
+			"fontSize": "clamp(2.2rem, 2.2rem + ((1vw - 0.2rem) * 1.333), 3.5rem)",
+			"lineHeight": "1.2"
+		}
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/blocks/quote-mark-on-color.json b/wp-content/themes/ipsum/styles/blocks/quote-mark-on-color.json
new file mode 100644
index 0000000000..13e472894e
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/blocks/quote-mark-on-color.json
@@ -0,0 +1,10 @@
+{
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"version": 3,
+	"title": "Quote Mark on Color",
+	"slug": "text-quote-mark-on-color",
+	"blockTypes": ["core/heading", "core/paragraph"],
+	"styles": {
+		"css": "&::before{content:\"❝\" / \"\";display:block;color:currentcolor;font-size:var(--wp--preset--font-size--2-x-large);line-height:1;}"
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/blocks/quote-mark.json b/wp-content/themes/ipsum/styles/blocks/quote-mark.json
new file mode 100644
index 0000000000..5e4c336cb4
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/blocks/quote-mark.json
@@ -0,0 +1,10 @@
+{
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"version": 3,
+	"title": "Quote Mark",
+	"slug": "text-quote-mark",
+	"blockTypes": ["core/heading", "core/paragraph"],
+	"styles": {
+		"css": "&::before{content:\"❝\" / \"\";display:block;color:var(--wp--preset--color--theme-4);font-size:var(--wp--preset--font-size--2-x-large);line-height:1;}"
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/colors/01-blue-hour.json b/wp-content/themes/ipsum/styles/colors/01-blue-hour.json
new file mode 100644
index 0000000000..13a0946383
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/colors/01-blue-hour.json
@@ -0,0 +1,78 @@
+{
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"version": 3,
+	"title": "Blue Hour",
+	"settings": {
+		"color": {
+			"duotone": [
+				{
+					"colors": [
+						"#0d1b26",
+						"#ecf7fe"
+					],
+					"name": "Ink on paper",
+					"slug": "duotone-1"
+				}
+			],
+			"palette": [
+				{
+					"color": "#ecf7fe",
+					"name": "Color 1",
+					"slug": "theme-1"
+				},
+				{
+					"color": "#0d1b26bf",
+					"name": "Color 2",
+					"slug": "theme-2"
+				},
+				{
+					"color": "#006699",
+					"name": "Color 3",
+					"slug": "theme-3"
+				},
+				{
+					"color": "#0d1b2633",
+					"name": "Color 4",
+					"slug": "theme-4"
+				},
+				{
+					"color": "#0d1b2608",
+					"name": "Color 5",
+					"slug": "theme-5"
+				},
+				{
+					"color": "#0d1b26",
+					"name": "Color 6",
+					"slug": "theme-6"
+				}
+			]
+		},
+		"custom": {
+			"controlScheme": "light"
+		}
+	},
+	"styles": {
+		"blocks": {
+			"core/post-featured-image": {
+				"filter": {
+					"duotone": "var:preset|duotone|duotone-1"
+				}
+			},
+			"core/site-tagline": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--stix-two-text)"
+				}
+			},
+			"core/site-title": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--stix-two-text)"
+				}
+			}
+		},
+		"typography": {
+			"fontFamily": "var(--wp--preset--font-family--stix-two-text)",
+			"fontStyle": "normal",
+			"fontWeight": "400"
+		}
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/colors/02-sunrise.json b/wp-content/themes/ipsum/styles/colors/02-sunrise.json
new file mode 100644
index 0000000000..b483569b0f
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/colors/02-sunrise.json
@@ -0,0 +1,61 @@
+{
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"version": 3,
+	"title": "Sunrise",
+	"settings": {
+		"color": {
+			"duotone": [
+				{
+					"colors": [
+						"#26220d",
+						"#fef8ec"
+					],
+					"name": "Pumice on paper",
+					"slug": "duotone-1"
+				}
+			],
+			"palette": [
+				{
+					"color": "#fef8ec",
+					"name": "Color 1",
+					"slug": "theme-1"
+				},
+				{
+					"color": "#26220dbf",
+					"name": "Color 2",
+					"slug": "theme-2"
+				},
+				{
+					"color": "#996600",
+					"name": "Color 3",
+					"slug": "theme-3"
+				},
+				{
+					"color": "#26220d33",
+					"name": "Color 4",
+					"slug": "theme-4"
+				},
+				{
+					"color": "#26220d08",
+					"name": "Color 5",
+					"slug": "theme-5"
+				},
+				{
+					"color": "#26220d",
+					"name": "Color 6",
+					"slug": "theme-6"
+				}
+			]
+		},
+		"custom": {
+			"controlScheme": "light"
+		}
+	},
+	"styles": {
+		"typography": {
+			"fontFamily": "var(--wp--preset--font-family--besley)",
+			"fontStyle": "normal",
+			"fontWeight": "400"
+		}
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/colors/03-morning.json b/wp-content/themes/ipsum/styles/colors/03-morning.json
new file mode 100644
index 0000000000..866721ebfa
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/colors/03-morning.json
@@ -0,0 +1,61 @@
+{
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"version": 3,
+	"title": "Morning",
+	"settings": {
+		"color": {
+			"duotone": [
+				{
+					"colors": [
+						"#12260d",
+						"#eefbec"
+					],
+					"name": "Moss on paper",
+					"slug": "duotone-1"
+				}
+			],
+			"palette": [
+				{
+					"color": "#eefbec",
+					"name": "Color 1",
+					"slug": "theme-1"
+				},
+				{
+					"color": "#12260dbf",
+					"name": "Color 2",
+					"slug": "theme-2"
+				},
+				{
+					"color": "#47730a",
+					"name": "Color 3",
+					"slug": "theme-3"
+				},
+				{
+					"color": "#12260d33",
+					"name": "Color 4",
+					"slug": "theme-4"
+				},
+				{
+					"color": "#12260d08",
+					"name": "Color 5",
+					"slug": "theme-5"
+				},
+				{
+					"color": "#12260d",
+					"name": "Color 6",
+					"slug": "theme-6"
+				}
+			]
+		},
+		"custom": {
+			"controlScheme": "light"
+		}
+	},
+	"styles": {
+		"typography": {
+			"fontFamily": "var(--wp--preset--font-family--archivo)",
+			"fontStyle": "normal",
+			"fontWeight": "400"
+		}
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/colors/04-high-noon.json b/wp-content/themes/ipsum/styles/colors/04-high-noon.json
new file mode 100644
index 0000000000..24cecb0582
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/colors/04-high-noon.json
@@ -0,0 +1,59 @@
+{
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"version": 3,
+	"title": "High Noon",
+	"settings": {
+		"custom": {
+			"controlScheme": "light"
+		},
+		"color": {
+			"duotone": [
+				{
+					"colors": [
+						"#000000",
+						"#FFFF66"
+					],
+					"name": "Black and acid",
+					"slug": "duotone-1"
+				}
+			],
+			"palette": [
+				{
+					"color": "#FFFF66",
+					"name": "Color 1",
+					"slug": "theme-1"
+				},
+				{
+					"color": "#000000bf",
+					"name": "Color 2",
+					"slug": "theme-2"
+				},
+				{
+					"color": "#465800",
+					"name": "Color 3",
+					"slug": "theme-3"
+				},
+				{
+					"color": "#00000033",
+					"name": "Color 4",
+					"slug": "theme-4"
+				},
+				{
+					"color": "#00000008",
+					"name": "Color 5",
+					"slug": "theme-5"
+				},
+				{
+					"color": "#000000",
+					"name": "Color 6",
+					"slug": "theme-6"
+				}
+			]
+		}
+	},
+	"styles": {
+		"typography": {
+			"fontFamily": "var(--wp--preset--font-family--jetbrains-mono)"
+		}
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/colors/05-golden-hour.json b/wp-content/themes/ipsum/styles/colors/05-golden-hour.json
new file mode 100644
index 0000000000..b0476c0eb4
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/colors/05-golden-hour.json
@@ -0,0 +1,77 @@
+{
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"version": 3,
+	"title": "Golden Hour",
+	"settings": {
+		"color": {
+			"duotone": [
+				{
+					"colors": [
+						"#7a1000",
+						"#ffd9bd"
+					],
+					"name": "Peach on maroon",
+					"slug": "duotone-1"
+				}
+			],
+			"palette": [
+				{
+					"color": "#7a1000",
+					"name": "Color 1",
+					"slug": "theme-1"
+				},
+				{
+					"color": "#ffd9bd",
+					"name": "Color 2",
+					"slug": "theme-2"
+				},
+				{
+					"color": "#ff8c52",
+					"name": "Color 3",
+					"slug": "theme-3"
+				},
+				{
+					"color": "#ffd9bd40",
+					"name": "Color 4",
+					"slug": "theme-4"
+				},
+				{
+					"color": "#ffd9bd1a",
+					"name": "Color 5",
+					"slug": "theme-5"
+				},
+				{
+					"color": "#fff1e8",
+					"name": "Color 6",
+					"slug": "theme-6"
+				}
+			]
+		},
+		"custom": {
+			"controlScheme": "dark"
+		}
+	},
+	"styles": {
+		"blocks": {
+			"core/post-featured-image": {
+				"filter": {
+					"duotone": "var:preset|duotone|duotone-1"
+				}
+			}
+		},
+		"elements": {
+			"heading": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontStyle": "normal",
+					"fontWeight": "500"
+				}
+			}
+		},
+		"typography": {
+			"fontFamily": "var(--wp--preset--font-family--manrope)",
+			"fontStyle": "normal",
+			"fontWeight": "400"
+		}
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/colors/06-evening.json b/wp-content/themes/ipsum/styles/colors/06-evening.json
new file mode 100644
index 0000000000..40e40e0da8
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/colors/06-evening.json
@@ -0,0 +1,54 @@
+{
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"version": 3,
+	"title": "Evening",
+	"settings": {
+		"custom": {
+			"controlScheme": "dark"
+		},
+		"color": {
+			"duotone": [
+				{
+					"colors": [
+						"#000000",
+						"#FFFFFF"
+					],
+					"name": "Black and white",
+					"slug": "duotone-1"
+				}
+			],
+			"palette": [
+				{
+					"color": "#000000",
+					"name": "Color 1",
+					"slug": "theme-1"
+				},
+				{
+					"color": "#FAFAFA",
+					"name": "Color 2",
+					"slug": "theme-2"
+				},
+				{
+					"color": "#FE4C57",
+					"name": "Color 3",
+					"slug": "theme-3"
+				},
+				{
+					"color": "#FAFAFA40",
+					"name": "Color 4",
+					"slug": "theme-4"
+				},
+				{
+					"color": "#FAFAFA1A",
+					"name": "Color 5",
+					"slug": "theme-5"
+				},
+				{
+					"color": "#FFFFFF",
+					"name": "Color 6",
+					"slug": "theme-6"
+				}
+			]
+		}
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/colors/07-after-hours.json b/wp-content/themes/ipsum/styles/colors/07-after-hours.json
new file mode 100644
index 0000000000..5db32ae6c2
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/colors/07-after-hours.json
@@ -0,0 +1,66 @@
+{
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"version": 3,
+	"title": "After Hours",
+	"settings": {
+		"custom": {
+			"controlScheme": "dark"
+		},
+		"color": {
+			"duotone": [
+				{
+					"colors": [
+						"#310c25",
+						"#e26bbe"
+					],
+					"name": "Pink on black",
+					"slug": "duotone-1"
+				}
+			],
+			"palette": [
+				{
+					"color": "#310c25",
+					"name": "Color 1",
+					"slug": "theme-1"
+				},
+				{
+					"color": "#e26bbe",
+					"name": "Color 2",
+					"slug": "theme-2"
+				},
+				{
+					"color": "#f2a3d8",
+					"name": "Color 3",
+					"slug": "theme-3"
+				},
+				{
+					"color": "#e26bbe40",
+					"name": "Color 4",
+					"slug": "theme-4"
+				},
+				{
+					"color": "#e26bbe1a",
+					"name": "Color 5",
+					"slug": "theme-5"
+				},
+				{
+					"color": "#ffcdec",
+					"name": "Color 6",
+					"slug": "theme-6"
+				}
+			]
+		}
+	},
+	"styles": {
+		"elements": {
+			"heading": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--archivo-condensed)"
+				}
+			}
+		},
+		"typography": {
+			"fontFamily": "var(--wp--preset--font-family--archivo)"
+		}
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/typography/archivo-condensed.json b/wp-content/themes/ipsum/styles/typography/archivo-condensed.json
new file mode 100644
index 0000000000..4cfc77cf00
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/typography/archivo-condensed.json
@@ -0,0 +1,83 @@
+{
+	"version": 3,
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"title": "Archivo Condensed",
+	"slug": "archivo-condensed",
+	"settings": {
+		"typography": {
+			"fontFamilies": [
+				{
+					"fontFace": [
+						{
+							"fontFamily": "Archivo Condensed",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "100 900",
+							"src": [
+								"file:./assets/fonts/archivo-condensed/archivo-condensed-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "Archivo Condensed",
+							"fontStretch": "normal",
+							"fontStyle": "italic",
+							"fontWeight": "100 900",
+							"src": [
+								"file:./assets/fonts/archivo-condensed/archivo-condensed-var-italic.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"Archivo Condensed\", sans-serif",
+					"name": "Archivo Condensed",
+					"slug": "archivo-condensed"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "Manrope",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "200 800",
+							"src": [
+								"file:./assets/fonts/manrope/manrope-var-normal.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"Manrope\", sans-serif",
+					"name": "Manrope",
+					"slug": "manrope"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "JetBrains Mono",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "100 800",
+							"src": [
+								"file:./assets/fonts/jetbrains-mono/jetbrains-mono-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "JetBrains Mono",
+							"fontStretch": "normal",
+							"fontStyle": "italic",
+							"fontWeight": "100 800",
+							"src": [
+								"file:./assets/fonts/jetbrains-mono/jetbrains-mono-var-italic.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"JetBrains Mono\", monospace",
+					"name": "JetBrains Mono",
+					"slug": "jetbrains-mono"
+				}
+			]
+		}
+	},
+	"styles": {
+		"typography": {
+			"fontFamily": "var(--wp--preset--font-family--archivo-condensed)"
+		}
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/typography/archivo.json b/wp-content/themes/ipsum/styles/typography/archivo.json
new file mode 100644
index 0000000000..dafd2b8597
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/typography/archivo.json
@@ -0,0 +1,83 @@
+{
+	"version": 3,
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"title": "Archivo",
+	"slug": "archivo",
+	"settings": {
+		"typography": {
+			"fontFamilies": [
+				{
+					"name": "Archivo",
+					"slug": "archivo",
+					"fontFamily": "\"Archivo\", sans-serif",
+					"fontFace": [
+						{
+							"fontFamily": "Archivo",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "100 900",
+							"src": [
+								"file:./assets/fonts/archivo/archivo-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "Archivo",
+							"fontStretch": "normal",
+							"fontStyle": "italic",
+							"fontWeight": "100 900",
+							"src": [
+								"file:./assets/fonts/archivo/archivo-var-italic.woff2"
+							]
+						}
+					]
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "Manrope",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "200 800",
+							"src": [
+								"file:./assets/fonts/manrope/manrope-var-normal.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"Manrope\", sans-serif",
+					"name": "Manrope",
+					"slug": "manrope"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "JetBrains Mono",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "100 800",
+							"src": [
+								"file:./assets/fonts/jetbrains-mono/jetbrains-mono-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "JetBrains Mono",
+							"fontStretch": "normal",
+							"fontStyle": "italic",
+							"fontWeight": "100 800",
+							"src": [
+								"file:./assets/fonts/jetbrains-mono/jetbrains-mono-var-italic.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"JetBrains Mono\", monospace",
+					"name": "JetBrains Mono",
+					"slug": "jetbrains-mono"
+				}
+			]
+		}
+	},
+	"styles": {
+		"typography": {
+			"fontFamily": "var(--wp--preset--font-family--archivo)"
+		}
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/typography/besley.json b/wp-content/themes/ipsum/styles/typography/besley.json
new file mode 100644
index 0000000000..6c2d53460f
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/typography/besley.json
@@ -0,0 +1,81 @@
+{
+	"version": 3,
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"title": "Besley",
+	"slug": "besley",
+	"settings": {
+		"typography": {
+			"fontFamilies": [
+				{
+					"name": "Besley",
+					"slug": "besley",
+					"fontFamily": "\"Besley\", serif",
+					"fontFace": [
+						{
+							"fontFamily": "Besley",
+							"fontStyle": "normal",
+							"fontWeight": "400 900",
+							"src": [
+								"file:./assets/fonts/besley/besley-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "Besley",
+							"fontStyle": "italic",
+							"fontWeight": "400 900",
+							"src": [
+								"file:./assets/fonts/besley/besley-var-italic.woff2"
+							]
+						}
+					]
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "Manrope",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "200 800",
+							"src": [
+								"file:./assets/fonts/manrope/manrope-var-normal.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"Manrope\", sans-serif",
+					"name": "Manrope",
+					"slug": "manrope"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "JetBrains Mono",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "100 800",
+							"src": [
+								"file:./assets/fonts/jetbrains-mono/jetbrains-mono-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "JetBrains Mono",
+							"fontStretch": "normal",
+							"fontStyle": "italic",
+							"fontWeight": "100 800",
+							"src": [
+								"file:./assets/fonts/jetbrains-mono/jetbrains-mono-var-italic.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"JetBrains Mono\", monospace",
+					"name": "JetBrains Mono",
+					"slug": "jetbrains-mono"
+				}
+			]
+		}
+	},
+	"styles": {
+		"typography": {
+			"fontFamily": "var(--wp--preset--font-family--besley)"
+		}
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/typography/jetbrains-mono.json b/wp-content/themes/ipsum/styles/typography/jetbrains-mono.json
new file mode 100644
index 0000000000..f539148c04
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/typography/jetbrains-mono.json
@@ -0,0 +1,58 @@
+{
+	"version": 3,
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"title": "JetBrains Mono",
+	"slug": "jetbrains-mono",
+	"settings": {
+		"typography": {
+			"fontFamilies": [
+				{
+					"fontFace": [
+						{
+							"fontFamily": "JetBrains Mono",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "100 800",
+							"src": [
+								"file:./assets/fonts/jetbrains-mono/jetbrains-mono-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "JetBrains Mono",
+							"fontStretch": "normal",
+							"fontStyle": "italic",
+							"fontWeight": "100 800",
+							"src": [
+								"file:./assets/fonts/jetbrains-mono/jetbrains-mono-var-italic.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"JetBrains Mono\", monospace",
+					"name": "JetBrains Mono",
+					"slug": "jetbrains-mono"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "Manrope",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "200 800",
+							"src": [
+								"file:./assets/fonts/manrope/manrope-var-normal.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"Manrope\", sans-serif",
+					"name": "Manrope",
+					"slug": "manrope"
+				}
+			]
+		}
+	},
+	"styles": {
+		"typography": {
+			"fontFamily": "var(--wp--preset--font-family--jetbrains-mono)"
+		}
+	}
+}
diff --git a/wp-content/themes/ipsum/styles/typography/stix-two-text.json b/wp-content/themes/ipsum/styles/typography/stix-two-text.json
new file mode 100644
index 0000000000..8125f77da9
--- /dev/null
+++ b/wp-content/themes/ipsum/styles/typography/stix-two-text.json
@@ -0,0 +1,81 @@
+{
+	"version": 3,
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"title": "STIX Two Text",
+	"slug": "stix-two-text",
+	"settings": {
+		"typography": {
+			"fontFamilies": [
+				{
+					"name": "STIX Two Text",
+					"slug": "stix-two-text",
+					"fontFamily": "\"STIX Two Text\", serif",
+					"fontFace": [
+						{
+							"fontFamily": "STIX Two Text",
+							"fontStyle": "normal",
+							"fontWeight": "400 700",
+							"src": [
+								"file:./assets/fonts/stix-two-text/stix-two-text-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "STIX Two Text",
+							"fontStyle": "italic",
+							"fontWeight": "400 700",
+							"src": [
+								"file:./assets/fonts/stix-two-text/stix-two-text-var-italic.woff2"
+							]
+						}
+					]
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "Manrope",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "200 800",
+							"src": [
+								"file:./assets/fonts/manrope/manrope-var-normal.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"Manrope\", sans-serif",
+					"name": "Manrope",
+					"slug": "manrope"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "JetBrains Mono",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "100 800",
+							"src": [
+								"file:./assets/fonts/jetbrains-mono/jetbrains-mono-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "JetBrains Mono",
+							"fontStretch": "normal",
+							"fontStyle": "italic",
+							"fontWeight": "100 800",
+							"src": [
+								"file:./assets/fonts/jetbrains-mono/jetbrains-mono-var-italic.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"JetBrains Mono\", monospace",
+					"name": "JetBrains Mono",
+					"slug": "jetbrains-mono"
+				}
+			]
+		}
+	},
+	"styles": {
+		"typography": {
+			"fontFamily": "var(--wp--preset--font-family--stix-two-text)"
+		}
+	}
+}
diff --git a/wp-content/themes/ipsum/templates/404.html b/wp-content/themes/ipsum/templates/404.html
new file mode 100644
index 0000000000..8ce8c70d17
--- /dev/null
+++ b/wp-content/themes/ipsum/templates/404.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/hidden-404"} /-->
diff --git a/wp-content/themes/ipsum/templates/archive-sidebar.html b/wp-content/themes/ipsum/templates/archive-sidebar.html
new file mode 100644
index 0000000000..123d5ac96b
--- /dev/null
+++ b/wp-content/themes/ipsum/templates/archive-sidebar.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/hidden-archive-sidebar"} /-->
diff --git a/wp-content/themes/ipsum/templates/archive.html b/wp-content/themes/ipsum/templates/archive.html
new file mode 100644
index 0000000000..1ceaafcc97
--- /dev/null
+++ b/wp-content/themes/ipsum/templates/archive.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/hidden-archive"} /-->
diff --git a/wp-content/themes/ipsum/templates/index-sidebar.html b/wp-content/themes/ipsum/templates/index-sidebar.html
new file mode 100644
index 0000000000..4faa0ed96e
--- /dev/null
+++ b/wp-content/themes/ipsum/templates/index-sidebar.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/hidden-index-sidebar"} /-->
diff --git a/wp-content/themes/ipsum/templates/index.html b/wp-content/themes/ipsum/templates/index.html
new file mode 100644
index 0000000000..c503146079
--- /dev/null
+++ b/wp-content/themes/ipsum/templates/index.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/hidden-index"} /-->
diff --git a/wp-content/themes/ipsum/templates/page-no-title.html b/wp-content/themes/ipsum/templates/page-no-title.html
new file mode 100644
index 0000000000..dd8f43d9e1
--- /dev/null
+++ b/wp-content/themes/ipsum/templates/page-no-title.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/hidden-page-no-title"} /-->
diff --git a/wp-content/themes/ipsum/templates/page-sidebar.html b/wp-content/themes/ipsum/templates/page-sidebar.html
new file mode 100644
index 0000000000..61d4b68e42
--- /dev/null
+++ b/wp-content/themes/ipsum/templates/page-sidebar.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/hidden-page-sidebar"} /-->
diff --git a/wp-content/themes/ipsum/templates/page.html b/wp-content/themes/ipsum/templates/page.html
new file mode 100644
index 0000000000..f2ad8d3cb5
--- /dev/null
+++ b/wp-content/themes/ipsum/templates/page.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/hidden-page"} /-->
diff --git a/wp-content/themes/ipsum/templates/search.html b/wp-content/themes/ipsum/templates/search.html
new file mode 100644
index 0000000000..2dde681d93
--- /dev/null
+++ b/wp-content/themes/ipsum/templates/search.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/hidden-search"} /-->
diff --git a/wp-content/themes/ipsum/templates/single-sidebar.html b/wp-content/themes/ipsum/templates/single-sidebar.html
new file mode 100644
index 0000000000..fc514f76d0
--- /dev/null
+++ b/wp-content/themes/ipsum/templates/single-sidebar.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/hidden-single-sidebar"} /-->
diff --git a/wp-content/themes/ipsum/templates/single.html b/wp-content/themes/ipsum/templates/single.html
new file mode 100644
index 0000000000..b18f861947
--- /dev/null
+++ b/wp-content/themes/ipsum/templates/single.html
@@ -0,0 +1 @@
+<!-- wp:pattern {"slug":"ipsum/hidden-single"} /-->
diff --git a/wp-content/themes/ipsum/theme.json b/wp-content/themes/ipsum/theme.json
new file mode 100644
index 0000000000..6419fa45d9
--- /dev/null
+++ b/wp-content/themes/ipsum/theme.json
@@ -0,0 +1,1330 @@
+{
+	"$schema": "https://schemas.wp.org/trunk/theme.json",
+	"version": 3,
+	"customTemplates": [
+		{
+			"name": "single-sidebar",
+			"postTypes": [
+				"post"
+			],
+			"title": "Single Posts Sidebar"
+		},
+		{
+			"name": "page-sidebar",
+			"postTypes": [
+				"page"
+			],
+			"title": "Pages Sidebar"
+		},
+		{
+			"name": "page-no-title",
+			"postTypes": [
+				"page"
+			],
+			"title": "Pages No Title"
+		}
+	],
+	"settings": {
+		"appearanceTools": true,
+		"color": {
+			"defaultDuotone": false,
+			"defaultGradients": false,
+			"defaultPalette": false,
+			"duotone": [
+				{
+					"colors": [
+						"#000000",
+						"#FFFFFF"
+					],
+					"name": "Black and white",
+					"slug": "duotone-1"
+				}
+			],
+			"gradients": [
+				{
+					"gradient": "linear-gradient(to bottom, var(--wp--preset--color--theme-5) 0%, var(--wp--preset--color--theme-1) 100%)",
+					"name": "Vertical soft wash to base",
+					"slug": "gradient-1"
+				},
+				{
+					"gradient": "linear-gradient(to bottom, var(--wp--preset--color--theme-5) 90%, var(--wp--preset--color--theme-1) 90%)",
+					"name": "Vertical hard wash to base",
+					"slug": "gradient-2"
+				}
+			],
+			"palette": [
+				{
+					"color": "#fcfcfc",
+					"name": "Color 1",
+					"slug": "theme-1"
+				},
+				{
+					"color": "#000000bf",
+					"name": "Color 2",
+					"slug": "theme-2"
+				},
+				{
+					"color": "#3355ff",
+					"name": "Color 3",
+					"slug": "theme-3"
+				},
+				{
+					"color": "#0a0a0a33",
+					"name": "Color 4",
+					"slug": "theme-4"
+				},
+				{
+					"color": "#0a0a0a08",
+					"name": "Color 5",
+					"slug": "theme-5"
+				},
+				{
+					"color": "#000000",
+					"name": "Color 6",
+					"slug": "theme-6"
+				}
+			]
+		},
+		"layout": {
+			"contentSize": "640px",
+			"wideSize": "1280px"
+		},
+		"shadow": {
+			"presets": [
+				{
+					"name": "Soft",
+					"shadow": "0 2px 8px rgba(0, 0, 0, 0.08)",
+					"slug": "soft"
+				}
+			]
+		},
+		"spacing": {
+			"defaultSpacingSizes": false,
+			"spacingSizes": [
+				{
+					"name": "2X-Small",
+					"size": "8px",
+					"slug": "20"
+				},
+				{
+					"name": "X-Small",
+					"size": "16px",
+					"slug": "30"
+				},
+				{
+					"name": "Small",
+					"size": "clamp(24px, 2.33vw, 32px)",
+					"slug": "40"
+				},
+				{
+					"name": "Regular",
+					"size": "clamp(32px, 3.49vw, 48px)",
+					"slug": "50"
+				},
+				{
+					"name": "Large",
+					"size": "clamp(48px, 4.65vw, 64px)",
+					"slug": "60"
+				},
+				{
+					"name": "X-Large",
+					"size": "clamp(64px, 6.98vw, 96px)",
+					"slug": "70"
+				},
+				{
+					"name": "2X-Large",
+					"size": "clamp(96px, 9.31vw, 128px)",
+					"slug": "80"
+				}
+			],
+			"units": [
+				"%",
+				"px",
+				"em",
+				"rem",
+				"vh",
+				"dvh",
+				"vw"
+			]
+		},
+		"typography": {
+			"defaultFontSizes": false,
+			"fluid": true,
+			"fontFamilies": [
+				{
+					"fontFace": [
+						{
+							"fontFamily": "Manrope",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "200 800",
+							"src": [
+								"file:./assets/fonts/manrope/manrope-var-normal.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"Manrope\", sans-serif",
+					"name": "Manrope",
+					"slug": "manrope"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "Inter",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "100 800",
+							"src": [
+								"file:./assets/fonts/inter/inter-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "Inter",
+							"fontStretch": "normal",
+							"fontStyle": "italic",
+							"fontWeight": "100 800",
+							"src": [
+								"file:./assets/fonts/inter/inter-var-italic.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"Inter\", sans-serif",
+					"name": "Inter",
+					"slug": "inter"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "Archivo",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "100 900",
+							"src": [
+								"file:./assets/fonts/archivo/archivo-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "Archivo",
+							"fontStretch": "normal",
+							"fontStyle": "italic",
+							"fontWeight": "100 900",
+							"src": [
+								"file:./assets/fonts/archivo/archivo-var-italic.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"Archivo\", sans-serif",
+					"name": "Archivo",
+					"slug": "archivo"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "Besley",
+							"fontStyle": "normal",
+							"fontWeight": "400 900",
+							"src": [
+								"file:./assets/fonts/besley/besley-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "Besley",
+							"fontStyle": "italic",
+							"fontWeight": "400 900",
+							"src": [
+								"file:./assets/fonts/besley/besley-var-italic.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"Besley\", serif",
+					"name": "Besley",
+					"slug": "besley"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "STIX Two Text",
+							"fontStyle": "normal",
+							"fontWeight": "400 700",
+							"src": [
+								"file:./assets/fonts/stix-two-text/stix-two-text-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "STIX Two Text",
+							"fontStyle": "italic",
+							"fontWeight": "400 700",
+							"src": [
+								"file:./assets/fonts/stix-two-text/stix-two-text-var-italic.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"STIX Two Text\", serif",
+					"name": "STIX Two Text",
+					"slug": "stix-two-text"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "JetBrains Mono",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "100 800",
+							"src": [
+								"file:./assets/fonts/jetbrains-mono/jetbrains-mono-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "JetBrains Mono",
+							"fontStretch": "normal",
+							"fontStyle": "italic",
+							"fontWeight": "100 800",
+							"src": [
+								"file:./assets/fonts/jetbrains-mono/jetbrains-mono-var-italic.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"JetBrains Mono\", monospace",
+					"name": "JetBrains Mono",
+					"slug": "jetbrains-mono"
+				},
+				{
+					"fontFace": [
+						{
+							"fontFamily": "Archivo Condensed",
+							"fontStretch": "normal",
+							"fontStyle": "normal",
+							"fontWeight": "100 900",
+							"src": [
+								"file:./assets/fonts/archivo-condensed/archivo-condensed-var-normal.woff2"
+							]
+						},
+						{
+							"fontFamily": "Archivo Condensed",
+							"fontStretch": "normal",
+							"fontStyle": "italic",
+							"fontWeight": "100 900",
+							"src": [
+								"file:./assets/fonts/archivo-condensed/archivo-condensed-var-italic.woff2"
+							]
+						}
+					],
+					"fontFamily": "\"Archivo Condensed\", sans-serif",
+					"name": "Archivo Condensed",
+					"slug": "archivo-condensed"
+				}
+			],
+			"fontSizes": [
+				{
+					"fluid": false,
+					"name": "Small",
+					"size": "0.875rem",
+					"slug": "small"
+				},
+				{
+					"fluid": false,
+					"name": "Medium",
+					"size": "1.125rem",
+					"slug": "medium"
+				},
+				{
+					"fluid": false,
+					"name": "Large",
+					"size": "1.4375rem",
+					"slug": "large"
+				},
+				{
+					"fluid": {
+						"max": "1.75rem",
+						"min": "1.5rem"
+					},
+					"name": "X-Large",
+					"size": "1.75rem",
+					"slug": "x-large"
+				},
+				{
+					"fluid": {
+						"max": "2.1875rem",
+						"min": "1.625rem"
+					},
+					"name": "2X-Large",
+					"size": "2.1875rem",
+					"slug": "2-x-large"
+				}
+			],
+			"writingMode": true
+		},
+		"useRootPaddingAwareAlignments": true
+	},
+	"styles": {
+		"blocks": {
+			"core/accordion": {
+				"spacing": {
+					"blockGap": "var(--wp--preset--spacing--50)"
+				}
+			},
+			"core/accordion-heading": {
+				"border": {
+					"top": {
+						"style": "dotted",
+						"width": "1px"
+					}
+				},
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontStyle": "normal",
+					"fontWeight": "700",
+					"letterSpacing": "0rem"
+				}
+			},
+			"core/accordion-item": {
+				"spacing": {
+					"blockGap": "var(--wp--preset--spacing--30)"
+				}
+			},
+			"core/accordion-panel": {
+				"spacing": {
+					"padding": {
+						"bottom": "var(--wp--preset--spacing--50)"
+					}
+				}
+			},
+			"core/audio": {
+				"css": "& audio{background-color:var(--wp--preset--color--theme-5);border-radius:10px;color:var(--wp--preset--color--theme-2);color-scheme:var(--wp--custom--control-scheme, light);} & audio::-webkit-media-controls-enclosure{background-color:transparent;border-radius:10px;} & audio::-webkit-media-controls-panel{background-color:transparent;} & audio::-webkit-media-controls-current-time-display{text-shadow:none;color:var(--wp--preset--color--theme-2);} & audio::-webkit-media-controls-time-remaining-display{text-shadow:none;color:var(--wp--preset--color--theme-2);}"
+			},
+			"core/avatar": {
+				"border": {
+					"radius": {
+						"bottomLeft": "10px",
+						"bottomRight": "10px",
+						"topLeft": "10px",
+						"topRight": "10px"
+					}
+				}
+			},
+			"core/button": {
+				":active": {
+					"color": {
+						"background": "color-mix(in srgb, var(--wp--preset--color--theme-2) 85%, transparent)",
+						"text": "var(--wp--preset--color--theme-1)"
+					}
+				},
+				":focus": {
+					"border": {
+						"bottom": {
+							"style": "dotted",
+							"width": "1px"
+						},
+						"left": {
+							"style": "dotted",
+							"width": "1px"
+						},
+						"right": {
+							"style": "dotted",
+							"width": "1px"
+						},
+						"top": {
+							"style": "dotted",
+							"width": "1px"
+						}
+					},
+					"color": {
+						"background": "color-mix(in srgb, var(--wp--preset--color--theme-2) 85%, transparent)",
+						"text": "var(--wp--preset--color--theme-1)"
+					},
+					"outline": {
+						"offset": "4px"
+					}
+				},
+				":focus-visible": {
+					"border": {
+						"bottom": {
+							"style": "dotted",
+							"width": "1px"
+						},
+						"left": {
+							"style": "dotted",
+							"width": "1px"
+						},
+						"right": {
+							"style": "dotted",
+							"width": "1px"
+						},
+						"top": {
+							"style": "dotted",
+							"width": "1px"
+						}
+					}
+				},
+				":hover": {
+					"color": {
+						"background": "var(--wp--preset--color--theme-6)",
+						"text": "var(--wp--preset--color--theme-1)"
+					}
+				},
+				"border": {
+					"bottom": {
+						"color": "var(--wp--preset--color--theme-2)",
+						"style": "solid",
+						"width": "1px"
+					},
+					"left": {
+						"color": "var(--wp--preset--color--theme-2)",
+						"style": "solid",
+						"width": "1px"
+					},
+					"radius": {
+						"bottomLeft": "10px",
+						"bottomRight": "10px",
+						"topLeft": "10px",
+						"topRight": "10px"
+					},
+					"right": {
+						"color": "var(--wp--preset--color--theme-2)",
+						"style": "solid",
+						"width": "1px"
+					},
+					"top": {
+						"color": "var(--wp--preset--color--theme-2)",
+						"style": "solid",
+						"width": "1px"
+					}
+				},
+				"spacing": {
+					"padding": {
+						"bottom": "var(--wp--preset--spacing--30)",
+						"left": "var(--wp--preset--spacing--40)",
+						"right": "var(--wp--preset--spacing--40)",
+						"top": "var(--wp--preset--spacing--30)"
+					}
+				},
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontWeight": "600",
+					"letterSpacing": "0rem"
+				},
+				"variations": {
+					"outline": {
+						":active": {
+							"color": {
+								"background": "color-mix(in srgb, var(--wp--preset--color--theme-2) 85%, transparent)",
+								"text": "var(--wp--preset--color--theme-1)"
+							}
+						},
+						":focus": {
+							"border": {
+								"bottom": {
+									"style": "dotted",
+									"width": "1px"
+								},
+								"left": {
+									"style": "dotted",
+									"width": "1px"
+								},
+								"right": {
+									"style": "dotted",
+									"width": "1px"
+								},
+								"top": {
+									"style": "dotted",
+									"width": "1px"
+								}
+							},
+							"color": {
+								"background": "color-mix(in srgb, var(--wp--preset--color--theme-2) 85%, transparent)",
+								"text": "var(--wp--preset--color--theme-1)"
+							},
+							"outline": {
+								"offset": "4px"
+							}
+						},
+						":focus-visible": {
+							"border": {
+								"bottom": {
+									"style": "dotted",
+									"width": "1px"
+								},
+								"left": {
+									"style": "dotted",
+									"width": "1px"
+								},
+								"right": {
+									"style": "dotted",
+									"width": "1px"
+								},
+								"top": {
+									"style": "dotted",
+									"width": "1px"
+								}
+							}
+						},
+						":hover": {
+							"color": {
+								"background": "var(--wp--preset--color--theme-5)",
+								"text": "var(--wp--preset--color--theme-6)"
+							}
+						},
+						"border": {
+							"bottom": {
+								"color": "var(--wp--preset--color--theme-2)",
+								"style": "solid",
+								"width": "1px"
+							},
+							"left": {
+								"color": "var(--wp--preset--color--theme-2)",
+								"style": "solid",
+								"width": "1px"
+							},
+							"right": {
+								"color": "var(--wp--preset--color--theme-2)",
+								"style": "solid",
+								"width": "1px"
+							},
+							"top": {
+								"color": "var(--wp--preset--color--theme-2)",
+								"style": "solid",
+								"width": "1px"
+							}
+						},
+						"spacing": {
+							"padding": {
+								"bottom": "var(--wp--preset--spacing--30)",
+								"left": "var(--wp--preset--spacing--40)",
+								"right": "var(--wp--preset--spacing--40)",
+								"top": "var(--wp--preset--spacing--30)"
+							}
+						},
+						"typography": {
+							"letterSpacing": "0rem"
+						}
+					}
+				}
+			},
+			"core/buttons": {
+				"spacing": {
+					"blockGap": "var(--wp--preset--spacing--30)"
+				}
+			},
+			"core/calendar": {
+				"css": "& :where(table:not(.has-text-color)) td{border-color: var(--wp--preset--color--theme-4) !important;} & :where(table:not(.has-text-color)) th{border-color: var(--wp--preset--color--theme-4) !important;} & :where(table:not(.has-text-color)){color:var(--wp--preset--color--theme-2)} & :where(.wp-block-calendar table:not(.has-background) th){background-color:var(--wp--preset--color--theme-5)}"
+			},
+			"core/categories": {
+				"css": "& {padding-inline-start: var(--wp--preset--spacing--30);} & ul {padding-inline-start: var(--wp--preset--spacing--30);}"
+			},
+			"core/code": {
+				"border": {
+					"color": "var(--wp--preset--color--theme-4)",
+					"radius": "5px",
+					"style": "solid",
+					"width": "1px"
+				},
+				"spacing": {
+					"padding": {
+						"bottom": "var(--wp--preset--spacing--30)",
+						"left": "var(--wp--preset--spacing--30)",
+						"right": "var(--wp--preset--spacing--30)",
+						"top": "var(--wp--preset--spacing--30)"
+					}
+				},
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--jetbrains-mono)"
+				}
+			},
+			"core/comment-author-name": {
+				"elements": {
+					"link": {
+						"typography": {
+							"textDecoration": "none"
+						}
+					}
+				},
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontStyle": "normal",
+					"fontWeight": "600",
+					"letterSpacing": "0rem"
+				}
+			},
+			"core/comment-content": {
+				"border": {
+					"radius": {
+						"bottomLeft": "10px",
+						"bottomRight": "10px",
+						"topLeft": "10px",
+						"topRight": "10px"
+					}
+				},
+				"color": {
+					"background": "var(--wp--preset--color--theme-5)"
+				},
+				"css": "& p{margin-top:var(--wp--preset--spacing--40); margin-bottom:0;} & > :first-child{margin-top:0;}",
+				"spacing": {
+					"padding": {
+						"bottom": "var(--wp--preset--spacing--30)",
+						"left": "var(--wp--preset--spacing--30)",
+						"right": "var(--wp--preset--spacing--30)",
+						"top": "var(--wp--preset--spacing--30)"
+					}
+				}
+			},
+			"core/comment-date": {
+				"elements": {
+					"link": {
+						"typography": {
+							"textDecoration": "none"
+						}
+					}
+				},
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontStyle": "normal",
+					"fontWeight": "400",
+					"letterSpacing": "0rem"
+				}
+			},
+			"core/comment-edit-link": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontStyle": "normal",
+					"fontWeight": "400",
+					"textTransform": "none",
+					"letterSpacing": "0rem"
+				}
+			},
+			"core/comment-reply-link": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontStyle": "normal",
+					"fontWeight": "400",
+					"textTransform": "none",
+					"letterSpacing": "0rem"
+				}
+			},
+			"core/comments": {
+				"spacing": {
+					"margin": {
+						"bottom": "var(--wp--preset--spacing--60)",
+						"top": "var(--wp--preset--spacing--60)"
+					}
+				}
+			},
+			"core/comments-pagination": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontWeight": "600"
+				}
+			},
+			"core/comments-title": {
+				"spacing": {
+					"margin": {
+						"bottom": "var(--wp--preset--spacing--50)"
+					}
+				},
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontWeight": "400",
+					"fontStyle": "normal",
+					"letterSpacing": "0rem"
+				}
+			},
+			"core/details": {
+				"border": {
+					"top": {
+						"style": "dotted",
+						"width": "1px"
+					}
+				},
+				"css": "& summary{font-family:var(--wp--preset--font-family--manrope);font-size:var(--wp--preset--font-size--small);font-style:normal;font-weight:700;list-style:none;display:flex;align-items:baseline;gap:var(--wp--preset--spacing--20);cursor:pointer;} & summary::-webkit-details-marker{display:none;} & summary::before{content:\"\\25B8\";} &[open] > summary::before{content:\"\\25BE\";}",
+				"spacing": {
+					"padding": {
+						"bottom": "var(--wp--preset--spacing--20)",
+						"top": "var(--wp--preset--spacing--20)"
+					}
+				}
+			},
+			"core/heading": {
+				"spacing": {
+					"margin": {
+						"bottom": "var(--wp--preset--spacing--20)",
+						"top": "var(--wp--preset--spacing--50)"
+					}
+				}
+			},
+			"core/image": {
+				"border": {
+					"radius": {
+						"bottomLeft": "5px",
+						"bottomRight": "5px",
+						"topLeft": "5px",
+						"topRight": "5px"
+					}
+				}
+			},
+			"core/latest-comments": {
+				"css": "& .wp-block-latest-comments__comment-date{font-size: inherit;} & .wp-block-latest-comments__comment-excerpt p {font-size:inherit !important;margin: 0 !important;}"
+			},
+			"core/latest-posts": {
+				"css": "& .wp-block-latest-posts__post-author{font-size:inherit;} & .wp-block-latest-posts__post-date{font-size:inherit;} & li:not(:first-of-type) {margin-top: var(--wp--style--block-gap);} & .wp-block-latest-posts__post-excerpt{margin-top: var(--wp--style--block-gap);} & .wp-block-latest-posts__post-full-content{margin-top: var(--wp--style--block-gap);}"
+			},
+			"core/list": {
+				"css": "& li{margin-top: 0.5rem;} &{padding-inline-start:var(--wp--preset--spacing--40);} & ul{padding-inline-start:var(--wp--preset--spacing--40);} & ol{padding-inline-start:var(--wp--preset--spacing--40);} & li::marker{font-family:var(--wp--preset--font-family--manrope);} &:where(ul){list-style-type:\"• \";} & ul{list-style-type:\"• \";} &:where(ul) > li::marker{color:var(--wp--preset--color--theme-4);} & ul > li::marker{color:var(--wp--preset--color--theme-4);}",
+				"spacing": {
+					"padding": {
+						"left": "0"
+					}
+				}
+			},
+			"core/navigation": {
+				"@mobile": {
+					"typography": {
+						"fontFamily": "inherit"
+					}
+				},
+				"@tablet": {
+					"typography": {
+						"fontFamily": "inherit"
+					}
+				},
+				"css": "& .wp-block-navigation__container{row-gap:0;} & .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{gap:0 !important;} & .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{gap:0 !important;padding:0 0 0 var(--wp--preset--spacing--30) !important;} & .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{padding:0 !important;} &.is-vertical .wp-block-navigation-item{gap:0 !important;} &.is-vertical .wp-block-navigation__submenu-container{gap:0 !important;padding:0 0 0 var(--wp--preset--spacing--30) !important;} &.is-vertical .wp-block-navigation__submenu-container .wp-block-navigation-item__content{padding:0 !important;}",
+				"elements": {
+					"link": {
+						":hover": {
+							"typography": {
+								"textDecoration": "underline"
+							}
+						},
+						"typography": {
+							"textDecoration": "none"
+						}
+					}
+				},
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--medium)",
+					"fontStyle": "normal",
+					"fontWeight": "500"
+				}
+			},
+			"core/paragraph": {
+				"typography": {
+					"lineHeight": "1.6"
+				}
+			},
+			"core/post-author": {
+				"css": "& .wp-block-post-author__bio{font-size:inherit;margin:0;} & .wp-block-post-author__byline{font-size:inherit;}"
+			},
+			"core/post-author-biography": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--medium)"
+				}
+			},
+			"core/post-author-name": {
+				"border": {
+					"radius": {
+						"bottomLeft": "2px",
+						"bottomRight": "2px",
+						"topLeft": "2px",
+						"topRight": "2px"
+					}
+				},
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontStyle": "normal",
+					"fontWeight": "600",
+					"letterSpacing": "0rem"
+				}
+			},
+			"core/post-comments-form": {
+				"css": "& textarea{background-color:var(--wp--preset--color--theme-1);color:var(--wp--preset--color--theme-2);border-color: var(--wp--preset--color--theme-2);border-radius:5px;} & input:not([type=submit]){background-color:var(--wp--preset--color--theme-1);color:var(--wp--preset--color--theme-2);border-color: var(--wp--preset--color--theme-2);border-radius:5px;} & textarea:hover{border-color: var(--wp--preset--color--theme-6);} & input:not([type=submit]):hover{border-color: var(--wp--preset--color--theme-6);} & input[type=checkbox]{margin:0 .5rem 0 0 !important;border-radius:0;} & label {font-family:var(--wp--preset--font-family--manrope);font-size: var(--wp--preset--font-size--small);font-weight:600;} & .comment-form > * {margin-top: var(--wp--style--block-gap);margin-bottom: 0;}"
+			},
+			"core/post-comments-link": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontWeight": "600"
+				}
+			},
+			"core/post-date": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontStyle": "normal",
+					"fontWeight": "600"
+				}
+			},
+			"core/post-excerpt": {
+				"css": "& .wp-block-post-excerpt__excerpt {line-height: inherit;}"
+			},
+			"core/post-featured-image": {
+				"border": {
+					"radius": {
+						"bottomLeft": "10px",
+						"bottomRight": "10px",
+						"topLeft": "10px",
+						"topRight": "10px"
+					}
+				}
+			},
+			"core/post-navigation-link": {
+				"elements": {
+					"link": {
+						":hover": {
+							"typography": {
+								"textDecoration": "underline"
+							}
+						},
+						"typography": {
+							"textDecoration": "none"
+						}
+					}
+				},
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontWeight": "600"
+				}
+			},
+			"core/post-terms": {
+				"css": "& a {white-space: nowrap;} &.taxonomy-post_tag {display: flex; flex-wrap: wrap; align-items: center; gap: var(--wp--preset--spacing--20);} &.taxonomy-post_tag .wp-block-post-terms__separator {display: none;} &.taxonomy-post_tag a {background-color: var(--wp--preset--color--theme-5); color: var(--wp--preset--color--theme-2); border-radius: 10px; padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30); text-decoration: none; transition: color 0.15s ease-out;} &.taxonomy-post_tag a:hover {color: var(--wp--preset--color--theme-6);}",
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontStyle": "normal",
+					"fontWeight": "600"
+				}
+			},
+			"core/post-time-to-read": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontStyle": "normal",
+					"fontWeight": "600"
+				}
+			},
+			"core/post-title": {
+				"elements": {
+					"link": {
+						":hover": {
+							"typography": {
+								"textDecoration": "underline"
+							}
+						},
+						"typography": {
+							"textDecoration": "none"
+						}
+					}
+				}
+			},
+			"core/preformatted": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--jetbrains-mono)"
+				}
+			},
+			"core/pullquote": {
+				"border": {
+					"radius": "5px"
+				},
+				"color": {
+					"background": "var(--wp--preset--color--theme-5)"
+				},
+				"css": "& blockquote::before{content:\"❝\";display:block;color:var(--wp--preset--color--theme-4);font-size:var(--wp--preset--font-size--2-x-large);line-height:1;} & cite::before{content:\"— \";} & p:last-of-type {margin-bottom: var(--wp--preset--spacing--40);}",
+				"elements": {
+					"cite": {
+						"typography": {
+							"fontFamily": "var(--wp--preset--font-family--manrope)",
+							"fontSize": "var(--wp--preset--font-size--small)",
+							"fontStyle": "normal",
+							"fontWeight": "600"
+						}
+					}
+				},
+				"spacing": {
+					"padding": {
+						"bottom": "var(--wp--preset--spacing--40)",
+						"left": "var(--wp--preset--spacing--40)",
+						"right": "var(--wp--preset--spacing--40)",
+						"top": "var(--wp--preset--spacing--40)"
+					}
+				},
+				"typography": {
+					"textAlign": "start"
+				}
+			},
+			"core/query-no-results": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontStyle": "normal",
+					"fontWeight": "600",
+					"letterSpacing": "0rem"
+				}
+			},
+			"core/query-pagination": {
+				"elements": {
+					"link": {
+						":hover": {
+							"typography": {
+								"textDecoration": "underline"
+							}
+						},
+						"typography": {
+							"textDecoration": "none"
+						}
+					}
+				},
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontStyle": "normal",
+					"fontWeight": "600",
+					"letterSpacing": "0rem"
+				}
+			},
+			"core/query-title": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontWeight": "600"
+				}
+			},
+			"core/quote": {
+				"border": {
+					"radius": "5px"
+				},
+				"color": {
+					"background": "var(--wp--preset--color--theme-5)"
+				},
+				"css": "&::before{content:\"❝\";display:block;color:var(--wp--preset--color--theme-4);font-size:var(--wp--preset--font-size--2-x-large);line-height:1;} & cite::before{content:\"— \";}",
+				"elements": {
+					"cite": {
+						"typography": {
+							"fontFamily": "var(--wp--preset--font-family--manrope)",
+							"fontSize": "var(--wp--preset--font-size--small)",
+							"fontStyle": "normal",
+							"fontWeight": "600"
+						}
+					}
+				},
+				"spacing": {
+					"padding": {
+						"bottom": "var(--wp--preset--spacing--40)",
+						"left": "var(--wp--preset--spacing--30)",
+						"right": "var(--wp--preset--spacing--30)",
+						"top": "var(--wp--preset--spacing--40)"
+					}
+				},
+				"variations": {
+					"plain": {
+						"border": {
+							"radius": "0px"
+						},
+						"color": {
+							"background": "transparent"
+						},
+						"spacing": {
+							"padding": {
+								"bottom": "0px",
+								"left": "0px",
+								"right": "0px",
+								"top": "0px"
+							}
+						}
+					}
+				}
+			},
+			"core/read-more": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontWeight": "600"
+				}
+			},
+			"core/search": {
+				"css": "& .wp-block-search__input{background-color:var(--wp--preset--color--theme-1);color:var(--wp--preset--color--theme-2);border-color:var(--wp--preset--color--theme-2);border-radius:5px;} & .wp-block-search__input::placeholder{color:var(--wp--preset--color--theme-2);opacity:0.9;} & .wp-block-search__input:hover{border-color:var(--wp--preset--color--theme-6);} &.wp-block-search__button-inside .wp-block-search__inside-wrapper {background-color:var(--wp--preset--color--theme-1);border-color:var(--wp--preset--color--theme-2);border-radius:5px;} &.wp-block-search__button-inside .wp-block-search__inside-wrapper:hover {border-color:var(--wp--preset--color--theme-6);} & .wp-block-search__label{display:block;font-size:var(--wp--preset--font-size--small);font-weight:600;margin-bottom:var(--wp--preset--spacing--20);} &.wp-block-search__button-only .wp-block-search__inside-wrapper{flex-direction:row;} &.wp-block-search__button-only .wp-block-search__input{transition:none;} &.wp-block-search__text-button .wp-block-search__button{border:1px solid var(--wp--preset--color--theme-6);padding:var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);}",
+				"elements": {
+					"button": {
+						"border": {
+							"radius": "4px"
+						},
+						"typography": {
+							"fontFamily": "var(--wp--preset--font-family--manrope)",
+							"fontSize": "var(--wp--preset--font-size--small)",
+							"fontWeight": "600"
+						}
+					}
+				},
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)"
+				}
+			},
+			"core/separator": {
+				"border": {
+					"color": "currentColor",
+					"style": "solid",
+					"width": "0 0 1px 0"
+				},
+				"color": {
+					"text": "var(--wp--preset--color--theme-4)"
+				},
+				"spacing": {
+					"margin": {
+						"bottom": "var(--wp--preset--spacing--60)",
+						"top": "var(--wp--preset--spacing--60)"
+					}
+				},
+				"variations": {
+					"wide": {
+						"css": " &:not(.alignfull){max-width: var(--wp--style--global--wide-size) !important;}"
+					}
+				}
+			},
+			"core/site-logo": {
+				"border": {
+					"radius": "5px"
+				},
+				"variations": {
+					"rounded": {
+						"border": {
+							"radius": "9999px"
+						}
+					}
+				}
+			},
+			"core/site-tagline": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontStyle": "normal",
+					"fontWeight": "500",
+					"letterSpacing": "0.01rem"
+				}
+			},
+			"core/site-title": {
+				"border": {
+					"radius": {
+						"bottomLeft": "4px",
+						"bottomRight": "4px",
+						"topLeft": "4px",
+						"topRight": "4px"
+					}
+				},
+				"elements": {
+					"link": {
+						":hover": {
+							"typography": {
+								"textDecoration": "none"
+							}
+						},
+						"typography": {
+							"textDecoration": "underline"
+						}
+					}
+				},
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)",
+					"fontStyle": "normal",
+					"fontWeight": "700",
+					"letterSpacing": "0.01rem"
+				}
+			},
+			"core/social-links": {
+				"spacing": {
+					"blockGap": "var(--wp--preset--spacing--30)"
+				},
+				"variations": {
+					"logos-only": {
+						"css": " & li.wp-social-link{color: currentcolor;}"
+					}
+				}
+			},
+			"core/spacer": {
+				"spacing": {
+					"margin": {
+						"bottom": "0",
+						"top": "0"
+					}
+				}
+			},
+			"core/tab-list": {
+				"typography": {
+					"fontFamily": "var(--wp--preset--font-family--manrope)",
+					"fontSize": "var(--wp--preset--font-size--small)"
+				}
+			},
+			"core/term-description": {
+				"css": "& p:not(:first-of-type){margin-top: var(--wp--preset--spacing--40) !important;}"
+			},
+			"core/verse": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--medium)",
+					"fontStyle": "italic",
+					"fontWeight": "500"
+				}
+			},
+			"jetpack/contact-form": {
+				"css": "& .grunion-field:not([type=checkbox]):not([type=radio]){border-color:var(--wp--preset--color--theme-2);border-radius:5px;} & .grunion-field:not([type=checkbox]):not([type=radio]):hover{border-color:var(--wp--preset--color--theme-6);} & .grunion-field-label{font-family:var(--wp--preset--font-family--manrope);font-size:var(--wp--preset--font-size--small);font-weight:600;}"
+			}
+		},
+		"color": {
+			"background": "var(--wp--preset--color--theme-1)",
+			"text": "var(--wp--preset--color--theme-2)"
+		},
+		"elements": {
+			"button": {
+				":active": {
+					"color": {
+						"background": "color-mix(in srgb, var(--wp--preset--color--theme-2) 85%, transparent)",
+						"text": "var(--wp--preset--color--theme-1)"
+					}
+				},
+				":focus": {
+					"color": {
+						"background": "color-mix(in srgb, var(--wp--preset--color--theme-2) 85%, transparent)",
+						"text": "var(--wp--preset--color--theme-1)"
+					},
+					"outline": {
+						"color": "currentColor",
+						"offset": "-4px",
+						"style": "dotted",
+						"width": "1px"
+					}
+				},
+				":focus-visible": {
+					"outline": {
+						"color": "currentColor",
+						"offset": "-4px",
+						"style": "dotted",
+						"width": "1px"
+					}
+				},
+				":hover": {
+					"color": {
+						"background": "var(--wp--preset--color--theme-6)",
+						"text": "var(--wp--preset--color--theme-1)"
+					}
+				},
+				"color": {
+					"background": "var(--wp--preset--color--theme-2)",
+					"text": "var(--wp--preset--color--theme-1)"
+				}
+			},
+			"h1": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--2-x-large)",
+					"letterSpacing": "-0.02rem"
+				}
+			},
+			"h2": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--x-large)",
+					"letterSpacing": "-0.02rem"
+				}
+			},
+			"h3": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--large)",
+					"letterSpacing": "-0.01rem"
+				}
+			},
+			"h4": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--medium)"
+				}
+			},
+			"h5": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--small)"
+				}
+			},
+			"h6": {
+				"typography": {
+					"fontSize": "var(--wp--preset--font-size--small)"
+				}
+			},
+			"heading": {
+				"typography": {
+					"fontWeight": "500",
+					"lineHeight": "calc( 1em + 0.5rem )"
+				}
+			},
+			"link": {
+				":hover": {
+					"color": {
+						"text": "var(--wp--preset--color--theme-6)"
+					},
+					"typography": {
+						"textDecoration": "none"
+					}
+				},
+				"color": {
+					"text": "var(--wp--preset--color--theme-2)"
+				}
+			}
+		},
+		"spacing": {
+			"blockGap": "var(--wp--preset--spacing--40)",
+			"padding": {
+				"left": "var(--wp--preset--spacing--40)",
+				"right": "var(--wp--preset--spacing--40)"
+			}
+		},
+		"typography": {
+			"fontFamily": "var(--wp--preset--font-family--inter)",
+			"fontSize": "var(--wp--preset--font-size--medium)",
+			"fontWeight": "400",
+			"lineHeight": "1.5"
+		}
+	},
+	"templateParts": [
+		{
+			"area": "header",
+			"name": "header",
+			"title": "Header"
+		},
+		{
+			"area": "header",
+			"name": "header-collapsed",
+			"title": "Header Collapsed"
+		},
+		{
+			"area": "header",
+			"name": "header-sticky",
+			"title": "Header Sticky"
+		},
+		{
+			"area": "footer",
+			"name": "footer",
+			"title": "Footer"
+		},
+		{
+			"area": "footer",
+			"name": "footer-wide",
+			"title": "Footer Wide"
+		},
+		{
+			"area": "uncategorized",
+			"name": "search-bar",
+			"title": "Search Bar"
+		},
+		{
+			"area": "navigation-overlay",
+			"name": "navigation-overlay",
+			"title": "Navigation Overlay"
+		},
+		{
+			"area": "uncategorized",
+			"name": "sidebar",
+			"title": "Sidebar"
+		}
+	]
+}
diff --git a/wp-includes/class-wp-theme.php b/wp-includes/class-wp-theme.php
index 87fcd7eec7..2d89320e83 100644
--- a/wp-includes/class-wp-theme.php
+++ b/wp-includes/class-wp-theme.php
@@ -63,6 +63,7 @@ final class WP_Theme implements ArrayAccess {
 	 * @since 6.1.0 Added the Twenty Twenty-Three theme.
 	 * @since 6.4.0 Added the Twenty Twenty-Four theme.
 	 * @since 6.7.0 Added the Twenty Twenty-Five theme.
+	 * @since 7.2.0 Added the Ipsum theme.
 	 * @var string[]
 	 */
 	private static $default_themes = array(
@@ -83,6 +84,7 @@ final class WP_Theme implements ArrayAccess {
 		'twentytwentythree' => 'Twenty Twenty-Three',
 		'twentytwentyfour'  => 'Twenty Twenty-Four',
 		'twentytwentyfive'  => 'Twenty Twenty-Five',
+		'ipsum'             => 'Ipsum',
 	);

 	/**
diff --git a/wp-includes/default-constants.php b/wp-includes/default-constants.php
index 11d2bc4338..782d3e3714 100644
--- a/wp-includes/default-constants.php
+++ b/wp-includes/default-constants.php
@@ -434,6 +434,6 @@ function wp_templating_constants() {
 	 * @see WP_Theme::get_core_default_theme()
 	 */
 	if ( ! defined( 'WP_DEFAULT_THEME' ) ) {
-		define( 'WP_DEFAULT_THEME', 'twentytwentyfive' );
+		define( 'WP_DEFAULT_THEME', 'ipsum' );
 	}
 }
diff --git a/wp-includes/version.php b/wp-includes/version.php
index 80011fc421..c23e3cc43a 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -16,7 +16,7 @@
  *
  * @global string $wp_version
  */
-$wp_version = '7.2-beta1-64676';
+$wp_version = '7.2-beta1-64677';

 /**
  * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.