/*
Theme Name: Luna Forshaw Observatory
Theme URI: https://u-witch.space/
Author: Luna Forshaw
Description: A reusable Observatory design built with native WordPress blocks and Global Styles.
Version: 2.2.0
Requires at least: 6.9
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: uwitch
*/
/* Appearance owns typography and colours. These are fallbacks for the merged
   native Global Styles variables emitted by Theme Controls. */
:root {
  --uwo-bg: var(--wp--preset--color--slate);
  --uwo-text: var(--wp--preset--color--white);
  --uwo-amber: var(--wp--preset--color--gold);
  --uwo-muted: var(--wp--preset--color--muted);
  --uwo-panel: var(--wp--preset--color--panel);
  --uwo-border-color: var(--wp--preset--color--muted);
  --uwo-border-width: 1px;
  --uwo-radius: 12px;
  --uwo-star: var(--wp--custom--observatory--star, #dfd8cf);
  --uwo-star-line: var(--wp--custom--observatory--star-line, #cfc7c0);
  --uwo-rain: var(--wp--custom--observatory--rain, #c6c3c3);
  --uwo-gutter: var(--wp--custom--observatory--page-gutter, 32px);
  --uwo-section-gap: var(--wp--custom--observatory--section-gap, 48px);
  --uwo-panel-padding: var(--wp--custom--observatory--panel-padding, 24px);
  --uwo-gap: var(--wp--style--block-gap, 1.5rem);
}
body { margin: 0; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > .uwitch-observatory { margin-block: 0; }
.uwitch-observatory { position: relative; isolation: isolate; min-height: 100svh; overflow: clip; background: var(--uwo-bg); }
.uwitch-observatory *, .uwitch-observatory *::before, .uwitch-observatory *::after { box-sizing: border-box; }
.uwitch-observatory :where(button, input, select, textarea, summary) { font: inherit; }
.uwitch-observatory :where(a) { text-underline-offset: .22em; }
.uwitch-observatory :is(a, button, input, summary):focus-visible { outline: 2px solid var(--uwo-amber); outline-offset: 4px; }
.uwitch-observatory :where(img, video, iframe) { max-width: 100%; }
.uwitch-observatory :where(img) { height: auto; }
.uwitch-observatory :where([hidden]) { display: none !important; }
.uwitch-observatory .uwo-sky { position: fixed; inset: 0; z-index: -1; width: 100%; height: 100%; pointer-events: none; }
.uwitch-observatory > .wp-block-template-part:first-child { margin: 0; }
/* Native Group and Navigation blocks stay editable in the Site Editor. */
.site-header, .site-footer { width: calc(100% - var(--uwo-gutter) * 2); max-width: var(--wp--style--global--wide-size); margin-inline: auto; }
.site-header { border-bottom: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); padding-block: calc(var(--uwo-panel-padding) * .75); }
.header-inner { min-height: 3.2em; gap: var(--uwo-gap); }
.site-identity { flex-shrink: 0; gap: .7em; }
.site-identity .wp-block-image { flex-shrink: 0; width: 1.85em; margin: 0; }
.site-identity .wp-block-image img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; }
.site-identity .wp-block-site-title { margin: 0; white-space: nowrap; }
/* Native navigation repeats its class on the list; only the nav owns the outline. */
.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) { border: 0; border-radius: 0; padding: 0; }
.site-header :is(.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close) { border: 0; border-radius: 0; padding: 0; }
.site-header .wp-block-navigation__container { gap: .25em; }
.site-header .wp-block-navigation-item__content { display: block; border-radius: calc(var(--uwo-radius) * .5); padding: .5em .8em; }
.site-header .wp-block-navigation-item__content:hover { background: color-mix(in srgb, var(--uwo-amber) 9%, transparent); }
.site-header .wp-block-navigation__submenu-container { padding: .5em; border: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); border-radius: calc(var(--uwo-radius) * .5); background: var(--uwo-panel); }
/* Outrank core's modal fallback colours and its zero-padding link rules. */
.uwitch-observatory .site-header nav.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open { background: var(--uwo-panel); color: var(--uwo-text); padding: var(--uwo-gutter); }
.uwitch-observatory .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch; padding-top: calc(var(--uwo-section-gap) * .5); }
.uwitch-observatory .site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { width: 100%; align-items: stretch; gap: .4em; }
.uwitch-observatory .site-header nav.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { width: 100%; min-height: 44px; padding: .6em .8em; color: inherit; font-size: var(--uwo-h3-size, var(--wp--preset--font-size--large)); }
.wp-block-navigation__responsive-container-close, .wp-block-navigation__responsive-container-open { min-width: 44px; min-height: 44px; }
.site-footer { margin-top: var(--uwo-section-gap); border-top: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); padding-block: var(--uwo-panel-padding); }
.footer-inner { gap: var(--uwo-gap); }
.footer-inner p { margin: 0; }
.footer-links { gap: var(--uwo-gap); }
/* Every page shares the frame; content remains independent of the template. */
.page-shell, .main-shell, .article-shell, .home-content { width: calc(100% - var(--uwo-gutter) * 2); max-width: var(--wp--style--global--wide-size); margin-inline: auto; padding-block: calc(var(--uwo-section-gap) * .55); }
.home-content { padding-top: 0; }
.wp-block-post-content { overflow-wrap: anywhere; }
.wp-block-post-content :where(.wp-block-column) { min-width: 0; }
.wp-block-post-content .wixui-rich-text__text { font: inherit; color: inherit; }
.wp-block-post-content :where(pre) { max-width: 100%; overflow: auto; white-space: pre; }
.wp-block-post-content :where(pre code) { overflow-wrap: normal; }
.wp-block-post-content :where(code) { font-family: inherit; }
.wp-block-post-content :where(blockquote) { border-left: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); padding-inline: var(--uwo-panel-padding); }
.wp-block-post-content :where(table) { width: 100%; border-collapse: collapse; display: block; overflow: auto; }
.wp-block-post-content :where(th, td) { border: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); padding: .8em; text-align: left; }
/* Compatibility layouts preserve the semantic blocks from the source pages. */
:where(.about-intro-band, .about-skills, .services-offerings, .services-contact, .cv-intro, .cv-entries, .topic-intro, .unreal-quote, .unreal-contact-wrap) { margin-block: var(--uwo-gap); }
:where(.about-intro-copy, .about-skills-inner, .services-offerings-inner, .topic-intro-columns, .quote-columns, .unreal-contact-panel) { max-width: var(--wp--style--global--wide-size); margin-inline: auto; }
:where(.about-intro, .skill-card, .service-card, .services-contact, .cv-entry, .unreal-contact-panel, .landing-panel) { padding: var(--uwo-panel-padding); border: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); border-radius: var(--uwo-radius); background: var(--uwo-panel); }
:where(.about-intro-copy, .services-intro, .cv-intro) { max-width: var(--wp--style--global--content-size); margin-inline: auto; }
:where(.skills-row, .services-row, .topic-intro-columns, .quote-columns, .unreal-contact-columns, .landing-panels) { gap: var(--uwo-gap); }
:where(.about-contact-actions, .services-intro) { margin-block: var(--uwo-gap); }
/* Compact panel headings keep the native hierarchy without borrowing hero scale. */
.uwitch-observatory :is(.about-intro, .about-skills, .topic-role, .landing-panel) h1 { font-size: var(--uwo-h2-size, var(--wp--preset--font-size--x-large)); }
.about-intro-copy > p { margin-block: calc(var(--uwo-gap) * .4); }
.uwitch-observatory :is(.skill-card, .service-card, .cv-entry, .writing-grid) h2 { font-size: var(--uwo-h3-size, var(--wp--preset--font-size--large)); }
.uwitch-observatory .cv-entry > .wp-block-column:first-child > h2 + h2 { font-size: inherit; margin-top: calc(var(--uwo-gap) * .5); }
:where(.skill-card, .service-card) { height: 100%; }
:where(.skill-card, .service-card, .landing-panel) > :first-child { margin-top: 0; }
:where(.skill-card, .service-card, .landing-panel) > :last-child { margin-bottom: 0; }
.skill-card .wp-block-list { padding-left: 1.25em; }
:where(.service-card, .unreal-contact-copy, .quote-copy, .topic-role) { text-align: center; }
.service-card .wp-block-image { overflow: hidden; border-radius: calc(var(--uwo-radius) * .5); }
:where(.service-card .wp-block-image img) { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; }:where(.unreal-page-logo, .landing-logo) { max-width: min(100%, 24em); margin-inline: auto; }
/* Topic cards keep the original linked branding at a readable, compact scale. */
.uwitch-observatory .landing-panel { position: relative; display: grid; grid-template-columns: clamp(3.75rem, 7vw, 5rem) minmax(0, 1fr); align-items: center; column-gap: var(--uwo-gap); }
.uwitch-observatory .landing-panel :is(h1,h2) { grid-column: 2; grid-row: 1; margin: 0; padding-right: 1em; font-size: var(--uwo-h3-size, var(--wp--preset--font-size--large)); line-height: 1.25; }
.uwitch-observatory .landing-panel :is(h1,h2) a { color: var(--uwo-text); text-decoration: none; }
.uwitch-observatory .landing-panel :is(h1,h2) a:hover { color: var(--uwo-amber); }
.uwitch-observatory .landing-panel::after { content: '\2197'; position: absolute; right: var(--uwo-panel-padding); top: 50%; transform: translateY(-50%); color: var(--uwo-amber); pointer-events: none; }
.uwitch-observatory .landing-panel .landing-logo { grid-column: 1; grid-row: 1; width: 100%; max-width: none; margin: 0; padding: .4em; background: color-mix(in srgb, var(--uwo-amber) 7%, var(--uwo-panel)); border: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); border-radius: calc(var(--uwo-radius) * .65); }
.uwitch-observatory .landing-panel .landing-logo a { display: block; }
.uwitch-observatory .landing-panel .landing-logo img { display: block; width: 100% !important; aspect-ratio: 1; object-fit: contain; }
/* Each card already backs its text. Keep a wrapper surface if direct copy is added. */
.uwitch-observatory .home-content #uwo-paths:has(> .landing-panels:only-child) { padding: 0; border: 0; background: none; }
:where(.cv-entry) { margin-bottom: var(--uwo-gap); align-items: flex-start; }
:where(.cv-entry > .wp-block-column) { padding: 0; }
:where(.unreal-contact-empty) { display: none; }
:where(.unreal-contact-copy) { flex-basis: 100% !important; }
/* Journal cards use native Query, featured media, title, excerpt and metadata. */
.article-navigation { gap: var(--uwo-gap); padding-block: var(--uwo-panel-padding); border-bottom: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); }
.article-categories .wp-block-navigation__container { gap: var(--uwo-gap); }
.blog-search { position: relative; z-index: 3; }
.blog-search > summary { cursor: pointer; padding: .4em .8em; border: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); border-radius: calc(var(--uwo-radius) * .5); }
.blog-search .wp-block-search { position: absolute; right: 0; top: 100%; width: min(22em, calc(100vw - var(--uwo-gutter) * 2)); margin-top: .5em; padding: var(--uwo-panel-padding); border: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); border-radius: var(--uwo-radius); background: var(--uwo-panel); }
.wp-block-search__inside-wrapper { gap: .5em; }
.wp-block-search__input { min-width: 0; }
.writing-grid { margin-block: var(--uwo-gap); }
.writing-grid .wp-block-post-template { gap: var(--uwo-gap); list-style: none; padding: 0; }
.writing-grid .wp-block-post { min-width: 0; overflow: hidden; border: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); border-radius: var(--uwo-radius); background: var(--uwo-panel); }
.writing-grid .wp-block-post-featured-image { margin: 0; width: 100%; overflow: hidden; }
.writing-grid .wp-block-post-featured-image a { display: block; height: 100%; }
.writing-grid .wp-block-post-featured-image :is(img, video) { display: block; width: 100%; height: 100%; object-fit: cover; }
.writing-grid .wp-block-post-title { overflow-wrap: anywhere; }
.writing-grid :where(.wp-block-post-title, .wp-block-post-excerpt, .wp-block-post-date, .wp-block-post-terms) { margin-inline: var(--uwo-panel-padding); }
.writing-grid .wp-block-post-title a { text-decoration: none; }
.writing-grid .wp-block-post-title a:hover { text-decoration: underline; }
.writing-feed .wp-block-post { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.writing-feed .wp-block-post-featured-image { height: 100%; min-height: 18em; aspect-ratio: auto; }
.writing-feed .wp-block-post-featured-image :is(img, video) { object-fit: contain !important; }
.feed-card-content { padding: var(--uwo-panel-padding); min-width: 0; }
.feed-card-content > :first-child { margin-top: 0; }
.feed-card-content > :last-child { margin-bottom: 0; }
.feed-card-content :where(.wp-block-post-title, .wp-block-post-excerpt, .wp-block-post-date, .wp-block-post-terms) { margin-inline: 0; }
.feed-meta-details, .card-meta { gap: .7em; }
.feed-meta { display: flex; flex-direction: column; gap: .35em; color: var(--uwo-muted); font-size: var(--wp--preset--font-size--small); }
.feed-meta > *, .feed-meta-details > * { margin-block: 0; }
.uwitch-observatory .writing-feed .wp-block-post-title { font-size: calc(var(--uwo-h2-size, var(--wp--preset--font-size--x-large)) * .75); }
.feed-meta-details .wp-block-post-time-to-read::before { content: '\00b7'; margin-right: .7em; }
.wp-block-query-pagination { gap: var(--uwo-gap); margin-top: var(--uwo-gap); }
.article-frame { max-width: var(--wp--style--global--content-size); margin: var(--uwo-gap) auto; }
.article-header { margin-bottom: var(--uwo-gap); }
.article-header .wp-block-post-title { margin-top: var(--uwo-gap); overflow-wrap: anywhere; }
.article-meta { gap: .85em; }
.article-meta > * { margin: 0; }
.article-frame .wp-block-post-content > * { min-width: 0; }
.article-frame .wp-block-post-content :where(.wp-block-image) { margin-inline: auto; }
.uwitch-share { margin-top: var(--uwo-gap); padding-top: var(--uwo-panel-padding); border-top: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); }
.uwitch-share .wp-block-buttons { gap: .6em; }
.uwitch-share-status { display: block; margin-top: .75em; }
.article-post-navigation, .recent-posts { margin-top: calc(var(--uwo-section-gap) * .5); }
.article-post-navigation { gap: var(--uwo-gap); }
.recent-posts .wp-block-post-featured-image { aspect-ratio: 16/9; }
/* Landing composition: native blocks are identified by reusable layout classes. */
.uwo-hero { display: grid; place-items: center; min-height: clamp(23em, 56svh, 36em); padding-block: calc(var(--uwo-section-gap) * .65); text-align: center; }
.uwo-hero-inner { width: 100%; max-width: var(--wp--style--global--content-size); }
.uwo-hero-inner > :first-child { margin-top: 0; }
.uwo-hero h1 { margin-block: .25em; }
.uwo-hero-link { margin-top: calc(var(--uwo-gap) * 1.5); }
.uwo-kicker, .uwo-overline, .uwo-path-group > h3 { letter-spacing: .12em; text-transform: uppercase; }
.uwo-intro { max-width: 38em; margin-inline: auto; }
.uwo-dock-wrap { width: 100%; max-width: var(--wp--style--global--content-size); margin: 0 auto var(--uwo-section-gap); }
.uwo-dock { gap: var(--uwo-gap); }
.uwo-dock-label { margin: 0; white-space: nowrap; }
.uwo-dock-links { gap: .4em; }
.uwo-paths { margin-block: var(--uwo-section-gap); }
.uwo-section-head { border-top: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); padding-top: var(--uwo-panel-padding); }
.uwo-path-grid { gap: calc(var(--uwo-gap) * 2); margin-top: calc(var(--uwo-gap) * 2); }
.uwo-path-row { min-height: 4.5em; margin: 0; padding-block: 1.1em; border-top: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); }
.uwo-path-row:last-child { border-bottom: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); }
.uwo-path-row a { display: flex; align-items: center; gap: 1em; text-decoration: none; }
.uwo-path-row a:hover { text-decoration: underline; }
.uwo-path-arrow { margin-left: auto; }
/* Every reading section has an opaque backing; the sky remains visible between
   sections. These surfaces share the existing native panel controls. */
.uwitch-observatory :is(
  .site-footer, .uwo-hero-inner, .uwo-paths,
  .about-skills, .services-intro, .cv-intro, .topic-intro, .unreal-quote,
  .article-navigation, .article-post-navigation, .recent-posts,
  .blog-shell > .wp-block-query-title, .wp-block-query-pagination,
  .writing-grid > p, .wp-block-query-no-results, .article-shell:not(:has(.article-frame)),
  .observatory-page:not(:has(.uwo-hero)), .main-shell > .wp-block-post-content,
  .page-shell:not(.observatory-page) > .wp-block-post-content > :is(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,pre,table,figcaption),
  .home-content > .wp-block-post-content > :is(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,pre,table,figcaption),
  .observatory-page:has(.uwo-hero) > .wp-block-post-content > :is(h1,h2,h3,h4,h5,h6,p,ul,ol,blockquote,pre,table,figcaption),
  .observatory-page:has(.uwo-hero) > .wp-block-post-content > :is(.wp-block-group,.wp-block-columns,.wp-block-query):not(.uwo-hero,.uwo-dock-wrap)
) {
  background: var(--uwo-panel);
  border: 0;
  border-radius: var(--uwo-radius);
  padding: var(--uwo-panel-padding);
}
.uwitch-observatory :is(.uwo-hero-inner, .services-intro, .cv-intro, .topic-intro, .unreal-quote, .about-skills, .uwo-paths) > :first-child { margin-top: 0; }
.uwitch-observatory :is(.uwo-hero-inner, .services-intro, .cv-intro, .topic-intro, .unreal-quote, .about-skills, .uwo-paths) > :last-child { margin-bottom: 0; }
/* The separate glass study keeps its own palette and layouts; its reading bands
   receive solid backings as well, without changing its content or assets. */
body .uwitch-lab :is(.site-header, .hero, .chapter-rule, .work, .close, .site-footer) {
  background: var(--surface);
  border-radius: var(--uwo-radius);
}
/* Compact atmosphere controls share the native theme colour/border values. */
/* Visitor controls sit away from navigation; the open panel rises above its trigger. */
.uwo-debug { position: fixed; z-index: 8; bottom: max(var(--uwo-panel-padding), env(safe-area-inset-bottom)); right: 1.2em; width: 22em; max-width: calc(100vw - 2.4em); font-size: .75em; }
.uwo-debug > summary { display: flex; align-items: center; justify-content: center; gap: .7em; width: fit-content; min-height: 44px; margin-left: auto; padding-inline: 1em; border: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); border-radius: calc(var(--uwo-radius) * .6); background: var(--uwo-panel); cursor: pointer; list-style: none; }
.uwo-debug > summary::-webkit-details-marker { display: none; }
.uwo-debug[open] .uwo-debug-caret { transform: rotate(180deg); }
.uwo-debug-panel { position: absolute; bottom: calc(100% + .7em); right: 0; width: 100%; max-height: calc(100svh - var(--uwo-panel-padding) * 2 - 44px - .7em); overflow-y: auto; padding: 1.2em; border: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); border-radius: calc(var(--uwo-radius) * .65); background: var(--uwo-panel); }
.uwo-mode-switch { min-width: 0; margin: 0; padding: 0; border: 0; }
.uwo-mode-switch legend { margin-bottom: .7em; }
.uwo-mode-options { display: grid; grid-template-columns: minmax(0, .6fr) minmax(0, .75fr) minmax(0, 1.65fr); gap: .25em; padding: .25em; border: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); border-radius: calc(var(--uwo-radius) * .5); background: var(--uwo-bg); }
.uwo-mode-option { position: relative; display: grid; place-items: center; min-height: 44px; padding-inline: .4em; border-radius: calc(var(--uwo-radius) * .35); cursor: pointer; }
.uwo-mode-input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.uwo-mode-option:has(input:checked) { color: var(--uwo-amber); background: color-mix(in srgb, var(--uwo-amber) 13%, transparent); }
.uwo-mode-option:has(input:focus-visible) { outline: 2px solid var(--uwo-amber); outline-offset: 2px; }
.uwo-motion-control { display: flex; align-items: center; gap: .75em; width: 100%; min-height: 44px; margin-top: .75em; padding: .75em; border: var(--uwo-border-width) solid transparent; border-radius: calc(var(--uwo-radius) * .45); color: inherit; background: transparent; cursor: pointer; }
.uwo-motion-control:hover { background: color-mix(in srgb, var(--uwo-amber) 8%, transparent); }
.uwo-motion-control:disabled { cursor: default; opacity: .75; }
.uwo-motion-icon { color: var(--uwo-amber); width: 1em; text-align: center; }
@media (max-width: 900px) {
  .site-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .site-header .wp-block-navigation__responsive-container-open { display: flex !important; }
}
@media (min-width: 901px) {
  .site-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: block !important; }
  .site-header .wp-block-navigation__responsive-container-open { display: none !important; }
}
@media (max-width: 781px) {
  :root { --uwo-gutter: min(var(--wp--custom--observatory--page-gutter, 44px), 5vw); }
  .writing-feed .wp-block-post { grid-template-columns: minmax(0, 1fr); }
  /* Preserve cover lettering and a full-width feed while smaller query grids wrap. */
  .writing-grid .wp-block-post-featured-image { height: auto; min-height: 0; aspect-ratio: 3/2; }
  .writing-grid .wp-block-post-featured-image :is(img, video) { aspect-ratio: 3/2 !important; object-fit: contain; }
  .writing-grid:not(.writing-feed) .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .writing-feed .wp-block-post-template { grid-template-columns: minmax(0, 1fr); }
  /* Search stays inside the page when categories occupy their own row. */
  .blog-search { flex-basis: 100%; min-width: 0; width: 100%; }
  .blog-search > summary { width: fit-content; min-height: 44px; }
  .blog-search .wp-block-search { position: static; width: 100%; max-width: 100%; }
  .uwo-hero { min-height: clamp(19em, 48svh, 26em); padding-block: calc(var(--uwo-section-gap) * .5); }
  .uwitch-observatory .landing-panel { column-gap: calc(var(--uwo-gap) * .75); }
  .uwitch-observatory .landing-panel :is(h1,h2) { padding-right: 0; }
  .uwitch-observatory .landing-panel::after { content: none; }
  .uwo-dock-wrap, .uwo-paths { margin-bottom: calc(var(--uwo-section-gap) * .6); }
  .uwo-paths { margin-top: calc(var(--uwo-section-gap) * .6); }
  .uwo-path-grid, .uwo-dock { flex-wrap: wrap !important; }
  .footer-inner { align-items: flex-start; }
  .uwo-debug { right: 1em; }
}
@media (max-width: 560px) {
  .writing-grid:not(.writing-feed) .wp-block-post-template { grid-template-columns: minmax(0, 1fr); }
  .header-inner { gap: .7em; }
  .site-footer { margin-top: calc(var(--uwo-section-gap) * .6); }
}
@media (prefers-reduced-motion: reduce) {
  .uwitch-observatory *, .uwitch-observatory *::before, .uwitch-observatory *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
@media print {
  .uwitch-observatory :is(.site-header, .site-footer, .uwo-debug, .uwo-sky, .article-navigation, .uwitch-share, .recent-posts, .article-post-navigation) { display: none !important; }
  .uwitch-observatory { background: white !important; color: black !important; }
  .article-shell { width: 100%; max-width: none; padding: 0; background: white !important; }
  .article-frame { border: 0 !important; background: white !important; color: black !important; padding: 0 !important; }
  .article-frame a { color: inherit !important; }
  .article-frame pre { white-space: pre-wrap; overflow: visible; break-inside: avoid; }
}

/* Portfolio layouts share the native surfaces, spacing and heading controls. */
.uwitch-observatory .cv-entry {
  display: grid;
  grid-template-columns: minmax(0, 26fr) minmax(0, 74fr);
  gap: calc(var(--uwo-gap) * 1.5);
  align-items: start;
}
.uwitch-observatory .cv-entry > .wp-block-column { margin: 0; }
.uwitch-observatory .cv-entry > .wp-block-column:last-child { max-width: 65ch; }
.uwitch-observatory .cv-entry > .wp-block-column > :first-child { margin-top: 0; }
.uwitch-observatory .cv-entry > .wp-block-column > :last-child { margin-bottom: 0; }
.uwitch-observatory .cv-entry > .wp-block-column:first-child h2 { line-height: 1.3; overflow-wrap: normal; }
.uwitch-observatory .cv-entry > .wp-block-column:first-child > h2 + h2 { margin-top: calc(var(--uwo-gap) * .5); }

/* Branding supports the roles; illustration supports the original quotation. */
.uwitch-observatory .topic-intro-columns {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  align-items: center;
  gap: calc(var(--uwo-gap) * 1.5);
  margin-block: 0;
}
.uwitch-observatory .topic-intro-columns > .wp-block-column { margin: 0; }
.uwitch-observatory .topic-intro-columns .unreal-page-logo { width: 100%; max-width: 100px; margin: 0; }
.uwitch-observatory .topic-intro-columns .unreal-page-logo img {
  display: block;
  width: 100% !important;
  height: auto !important;
  max-height: 120px;
  object-fit: contain;
}
.uwitch-observatory .topic-role { text-align: left; max-width: 65ch; }
.uwitch-observatory .topic-role > h1 { margin-top: 0; margin-bottom: calc(var(--uwo-gap) * .5); }
.uwitch-observatory .topic-role > p { margin-block: calc(var(--uwo-gap) * .35); }
.uwitch-observatory .topic-role > :last-child { margin-bottom: 0; }
.uwitch-observatory .unreal-quote .quote-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(100px, 180px);
  align-items: center;
  gap: calc(var(--uwo-gap) * 1.5);
  margin-block: 0;
}
.uwitch-observatory .unreal-quote .wp-block-column { margin: 0; align-self: center; }
.uwitch-observatory .unreal-quote .quote-copy { max-width: 65ch; text-align: left; }
.uwitch-observatory .unreal-quote .quote-copy > p { margin-top: 0; margin-bottom: calc(var(--uwo-gap) * .5); }
.uwitch-observatory .unreal-quote .quote-copy > :last-child { margin-bottom: 0; }
.uwitch-observatory .unreal-quote .quote-copy > h2 { margin-block: 0; font-size: var(--uwo-h3-size, var(--wp--preset--font-size--large)); }
.uwitch-observatory .unreal-quote .wp-block-image { margin: 0; }
.uwitch-observatory .unreal-quote .wp-block-image img {
  display: block;
  width: 100% !important;
  height: auto !important;
  max-height: 180px;
  object-fit: contain;
}

/* Keep paragraph and list rhythm within each existing opaque reading surface. */
.uwitch-observatory :is(.about-intro-copy, .services-intro) { max-width: 65ch; text-align: left; }
.uwitch-observatory .about-intro-copy > h1 { margin-top: 0; margin-bottom: var(--uwo-gap); line-height: 1.25; }
.uwitch-observatory :is(.about-intro-copy, .services-intro, .skill-card, .service-card) > p { margin-block: calc(var(--uwo-gap) * .6); }
.uwitch-observatory :is(.about-intro-copy, .services-intro, .skill-card, .service-card) > :last-child { margin-bottom: 0; }
.uwitch-observatory .about-skills-inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--uwo-gap);
}
.uwitch-observatory .about-skills-inner > :is(h1,h2) { grid-column: 1 / -1; margin: 0; font-size: var(--uwo-h2-size, var(--wp--preset--font-size--x-large)); }
.uwitch-observatory .about-skills .skills-row { display: contents; }
.uwitch-observatory .about-skills .skills-row > .wp-block-column { display: flex; min-width: 0; margin: 0; }
.uwitch-observatory .skill-card { width: 100%; }
.uwitch-observatory :is(.skill-card, .service-card) { text-align: left; }
.uwitch-observatory :is(.skill-card, .service-card) > h2 { margin-block: 0 calc(var(--uwo-gap) * .6); line-height: 1.3; overflow-wrap: normal; }
.uwitch-observatory .skill-card .wp-block-list { margin-block: 0; padding-left: 1.2em; }
.uwitch-observatory .skill-card .wp-block-list > li + li { margin-top: calc(var(--uwo-gap) * .3); }
.uwitch-observatory .services-intro > h1 { margin-top: 0; margin-bottom: calc(var(--uwo-gap) * .75); }
.uwitch-observatory .services-row { align-items: stretch; }
.uwitch-observatory .services-row > .wp-block-column { display: flex; }
.uwitch-observatory .service-card { width: 100%; }
.uwitch-observatory .service-card > .wp-block-image { margin: 0 0 var(--uwo-gap); }

/* Query artwork stays complete; text uses consistent insets and equal row heights. */
.uwitch-observatory .writing-grid:not(.writing-feed) .wp-block-post-template { align-items: stretch; }
.uwitch-observatory .writing-grid:not(.writing-feed) .wp-block-post {
  display: flex;
  flex-direction: column;
  padding-bottom: var(--uwo-panel-padding);
}
.uwitch-observatory .writing-grid:not(.writing-feed) .wp-block-post-featured-image { flex-shrink: 0; aspect-ratio: 4 / 3; }
.uwitch-observatory .writing-grid:not(.writing-feed) .wp-block-post-featured-image :is(img, video) { object-fit: contain !important; }
.uwitch-observatory .writing-grid:not(.writing-feed) .wp-block-post-title {
  margin: var(--uwo-panel-padding) var(--uwo-panel-padding) 0;
  font-size: var(--uwo-h3-size, var(--wp--preset--font-size--large));
  line-height: 1.3;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: auto;
}
.uwitch-observatory .writing-grid:not(.writing-feed) .wp-block-post-excerpt { margin: calc(var(--uwo-gap) * .6) var(--uwo-panel-padding) 0; }
.uwitch-observatory .writing-grid:not(.writing-feed) .wp-block-post-excerpt > :first-child { margin-top: 0; }
.uwitch-observatory .writing-grid:not(.writing-feed) .wp-block-post-excerpt > :last-child { margin-bottom: 0; }
.uwitch-observatory .page-verse .writing-grid .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 1100px) {
  .uwitch-observatory .about-skills-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
  .uwitch-observatory .cv-entry { grid-template-columns: minmax(0, 1fr); gap: var(--uwo-gap); }
  .uwitch-observatory .cv-entry > .wp-block-column:first-child { padding-bottom: var(--uwo-panel-padding); border-bottom: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); }
}
@media (max-width: 560px) {
  .uwitch-observatory .about-skills-inner,
  .uwitch-observatory .page-verse .writing-grid .wp-block-post-template { grid-template-columns: minmax(0, 1fr); }
  .uwitch-observatory .topic-intro-columns { grid-template-columns: minmax(0, 1fr); gap: var(--uwo-gap); }
  .uwitch-observatory .unreal-quote .quote-columns { grid-template-columns: minmax(0, 1fr); gap: var(--uwo-gap); }
  .uwitch-observatory .unreal-quote .wp-block-column:last-child { max-width: 140px; }
}

/* Professional hierarchy stays under the existing native design controls. */
.uwitch-observatory .site-header { container-type: inline-size; background: var(--uwo-panel); border: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); border-radius: var(--uwo-radius); padding-block: calc(var(--uwo-panel-padding) * .75); padding-inline: min(var(--uwo-panel-padding), 4vw); }
/* Keep core's open menu fixed to the viewport rather than the query container. */
.uwitch-observatory .site-header:has(.is-menu-open) { container-type: normal; }
html.has-modal-open .uwitch-observatory .site-header .wp-block-navigation__responsive-container-open { display: flex !important; }
.uwitch-observatory .header-inner { min-height: 44px; align-items: center; gap: min(var(--uwo-gap), .75em); }
.uwitch-observatory .site-identity { align-items: center; gap: min(.75em, .75rem); }
.uwitch-observatory .site-identity .wp-block-image { width: clamp(44px, 3em, 56px); }
.uwitch-observatory .site-identity .wp-block-image a { display: flex; align-items: center; justify-content: center; min-height: 44px; }
.uwitch-observatory .site-identity .wp-block-site-title a { display: inline-flex; align-items: center; min-height: 44px; }
.uwitch-observatory .site-header nav.wp-block-navigation { border: 0; padding: 0; }
.uwitch-observatory .site-header .wp-block-navigation-item__content { display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: .65em .8em; }
.uwitch-observatory .site-header :is(.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close) { border-radius: calc(var(--uwo-radius) * .5); }
.uwitch-observatory .site-header :is(.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close):hover { background: color-mix(in srgb, var(--uwo-amber) 9%, var(--uwo-panel)); }
/* Larger native reading sizes open the menu before a single row can collide. */
@container (max-width: 60em) {
  .uwitch-observatory .site-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
  .uwitch-observatory .site-header .wp-block-navigation__responsive-container-open { display: flex !important; }
}
.uwitch-observatory .site-header .wp-block-navigation-item__content[aria-current] { color: var(--uwo-amber); background: color-mix(in srgb, var(--uwo-amber) 8%, var(--uwo-panel)); }
.uwitch-observatory .site-header .portfolio-nav-cv > a { color: var(--uwo-panel); background: var(--uwo-amber); font-weight: 700; }
.uwitch-observatory .uwo-hero { min-height: 0; padding-block: calc(var(--uwo-section-gap) * .65); }
.uwitch-observatory .uwo-hero-inner { padding: calc(var(--uwo-panel-padding) * 1.5); }
.uwitch-observatory .uwo-role { font-size: var(--uwo-h3-size, var(--wp--preset--font-size--large)); font-weight: 600; margin-block: calc(var(--uwo-gap) * .7); }
.uwitch-observatory .uwo-intro { margin-block: calc(var(--uwo-gap) * .7); }
.uwitch-observatory .uwo-hero-link { margin-top: var(--uwo-gap); }
.uwitch-observatory .portfolio-actions { gap: calc(var(--uwo-gap) * .6); margin-top: var(--uwo-gap); }
.uwitch-observatory .uwo-hero .portfolio-actions { justify-content: center; }
.uwitch-observatory .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; text-decoration: none; }
.uwitch-observatory .portfolio-actions .wp-block-button:first-child .wp-block-button__link { color: var(--uwo-panel); background: var(--uwo-amber); border-color: var(--uwo-amber); }
.uwitch-observatory :is(.portfolio-title,.portfolio-evidence,.portfolio-section-head) { background: var(--uwo-panel); border: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); border-radius: var(--uwo-radius); padding: var(--uwo-panel-padding); }
.uwitch-observatory :is(.portfolio-title,.cv-intro,.services-intro) h1 { font-size: var(--uwo-h2-size, var(--wp--preset--font-size--x-large)); margin-block: 0 calc(var(--uwo-gap) * .6); }
.uwitch-observatory :is(.portfolio-title,.portfolio-evidence,.portfolio-section-head) > :first-child { margin-top: 0; }
.uwitch-observatory :is(.portfolio-title,.portfolio-evidence,.portfolio-section-head) > :last-child { margin-bottom: 0; }
.uwitch-observatory .portfolio-evidence { margin-block: var(--uwo-section-gap) 0; }
.uwitch-observatory .portfolio-evidence > .portfolio-section-head { border: 0; padding: 0; }
.uwitch-observatory .portfolio-evidence h2 { font-size: var(--uwo-h3-size, var(--wp--preset--font-size--large)); }
.uwitch-observatory .portfolio-evidence .wp-block-columns { align-items: stretch; gap: var(--uwo-gap); }
.uwitch-observatory .portfolio-evidence .wp-block-column { padding: var(--uwo-panel-padding); background: color-mix(in srgb, var(--uwo-text) 3%, var(--uwo-panel)); border-radius: calc(var(--uwo-radius) * .65); }
.uwitch-observatory .portfolio-evidence .wp-block-column > :first-child { margin-top: 0; }
.uwitch-observatory .portfolio-evidence .wp-block-column > :last-child { margin-bottom: 0; }
.uwitch-observatory .portfolio-evidence h3 { font-size: var(--uwo-h3-size, var(--wp--preset--font-size--large)); line-height: 1.3; }
.uwitch-observatory .portfolio-evidence h3 a { text-decoration: none; }
.uwitch-observatory .portfolio-evidence h3 a:hover { text-decoration: underline; }
.uwitch-observatory .about-skills .skill-card { border: 0; background: color-mix(in srgb, var(--uwo-text) 3%, var(--uwo-panel)); }
.uwitch-observatory .cv-intro { max-width: none; margin-inline: 0; }
.uwitch-observatory .cv-intro > p { max-width: 65ch; margin-block: calc(var(--uwo-gap) * .6); }
.uwitch-observatory .cv-company { font-weight: 600; margin-block: calc(var(--uwo-gap) * .5) 0; }
.uwitch-observatory .cv-date { color: var(--uwo-muted); margin-block: calc(var(--uwo-gap) * .25) 0; font-size: var(--wp--preset--font-size--small); }
.uwitch-observatory :is(.cv-entry,.article-frame) p { line-height: inherit; }
.uwitch-observatory .quote-attribution { color: var(--uwo-muted); font-size: var(--wp--preset--font-size--small); margin-block: calc(var(--uwo-gap) * .5) 0; }
.uwitch-observatory .services-intro { max-width: none; }
.uwitch-observatory .services-intro > p { max-width: 65ch; }
.uwitch-observatory .site-footer { margin-top: calc(var(--uwo-section-gap) * .6); }
.uwitch-observatory .footer-links a { display: inline-flex; align-items: center; min-height: 44px; }
.uwitch-observatory { padding-bottom: calc(var(--uwo-panel-padding) + 44px); }
.uwitch-observatory .uwo-debug > summary { width: 44px; padding: 0; }
.uwitch-observatory .uwo-debug > summary .uwo-debug-caret { display: none; }
.uwitch-observatory .uwo-debug > summary .uwo-debug-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 1100px) {
  .uwitch-observatory .page-unreal .writing-grid:not(.writing-feed) .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
  .uwitch-observatory .uwo-hero-inner { padding: var(--uwo-panel-padding); }
  .uwitch-observatory .portfolio-evidence { margin-block: calc(var(--uwo-section-gap) * .6) 0; }
}
@media (max-width: 560px) {
  .uwitch-observatory .page-unreal .writing-grid:not(.writing-feed) .wp-block-post-template { grid-template-columns: minmax(0, 1fr); }
}
/* Reading panels align their copy with the shared inset, without empty side columns. */
.uwitch-observatory .about-intro { max-width: var(--wp--style--global--content-size); margin-inline: auto; }
.uwitch-observatory .about-intro-copy { max-width: none; margin-inline: 0; }
.uwitch-observatory .about-intro-copy > p { max-width: 65ch; }
/* Keep number labels and arrows intact when a path title wraps. */
.uwitch-observatory .uwo-path-row a > span:first-child { flex: 0 0 2ch; white-space: nowrap; }
.uwitch-observatory .uwo-path-row a > span:nth-child(2) { flex: 1; min-width: 0; }
.uwitch-observatory .uwo-path-row a > .uwo-path-arrow { flex: 0 0 auto; }
/* Shared rows align summaries even when adjacent titles use different line counts. */
@supports (grid-template-rows: subgrid) {
  .uwitch-observatory .portfolio-evidence .wp-block-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .uwitch-observatory .portfolio-evidence .wp-block-column { display: grid; grid-template-rows: subgrid; grid-row: span 2; row-gap: 0; margin: 0; }
  .uwitch-observatory .portfolio-evidence-card { display: grid; grid-template-rows: subgrid; grid-row: span 2; row-gap: 0; }
  .uwitch-observatory .portfolio-evidence-card > h3 { margin: 0; }
  .uwitch-observatory .portfolio-evidence-card > p { margin: 0; padding-top: calc(var(--uwo-gap) * .6); }
  .uwitch-observatory .writing-grid:not(.writing-feed) .wp-block-post-template:has(.wp-block-post-excerpt) > .wp-block-post { display: grid; grid-template-rows: subgrid; grid-row: span 3; row-gap: 0; }
  @media (max-width: 900px) {
    .uwitch-observatory .portfolio-evidence .wp-block-columns { grid-template-columns: minmax(0, 1fr); }
  }
}
/* The image and its containing frame use the same compact mobile proportions. */
@media (max-width: 781px) {
  .uwitch-observatory .writing-grid:not(.writing-feed) .wp-block-post-featured-image { aspect-ratio: 3 / 2; }
}
@media print {
  .uwitch-observatory .page-cv { width: 100%; padding: 0; }
  .uwitch-observatory .page-cv :is(.cv-intro,.cv-entry) { background: white !important; color: black !important; border: 0; border-bottom: 1px solid #ccc; border-radius: 0; break-inside: avoid; }
  .uwitch-observatory .page-cv :is(h1,h2,p,a) { color: black !important; }
  .uwitch-observatory .page-cv .portfolio-actions { display: none; }
}


/* Core's mobile-modal text colour must keep the amber CV action readable. */
.uwitch-observatory .site-header nav.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .portfolio-nav-cv > .wp-block-navigation-item__content { color: var(--uwo-panel); }
.uwitch-observatory :is(.skill-card,.service-card) > h3 { margin-block: 0 calc(var(--uwo-gap) * .6); line-height: 1.3; }
/* Source CV paragraphs contain trailing layout breaks, not additional prose. */
.uwitch-observatory .cv-entry p > br:last-child { display: none; }
.uwitch-observatory .uwo-debug { right: 0; }
.uwitch-observatory .uwo-debug > summary { position: relative; justify-content: flex-end; padding-right: 9px; border: 0; background: transparent; }
.uwitch-observatory .uwo-debug > summary::before { content: ''; position: absolute; top: 6px; right: 0; width: 32px; height: 32px; background: var(--uwo-panel); border: var(--uwo-border-width) var(--uwo-border-style, solid) var(--uwo-border-color); border-radius: calc(var(--uwo-radius) * .6); }
.uwitch-observatory .uwo-debug > summary svg { position: relative; z-index: 1; }
.uwitch-observatory .article-header .wp-block-post-title { font-size: var(--uwo-h2-size, var(--wp--preset--font-size--x-large)); line-height: 1.2; }

/* Generated search text stays inside its reading surface. */
.uwitch-observatory .blog-shell > .wp-block-query-title { min-width: 0; overflow-wrap: anywhere; }
/* Give page numbers and directional links consistent, usable targets. */
.uwitch-observatory .wp-block-query-pagination { align-items: center; }
.uwitch-observatory .wp-block-query-pagination-numbers { display: flex; flex-wrap: wrap; align-items: center; gap: .25em; margin: 0; }
.uwitch-observatory .wp-block-query-pagination :is(.page-numbers,.wp-block-query-pagination-next,.wp-block-query-pagination-previous) { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; max-width: 100%; margin: 0; padding-inline: .6em; border: var(--uwo-border-width) var(--uwo-border-style, solid) transparent; border-radius: calc(var(--uwo-radius) * .5); overflow-wrap: anywhere; }
.uwitch-observatory .wp-block-query-pagination .page-numbers.current { color: var(--uwo-amber); border-color: var(--uwo-border-color); background: var(--uwo-bg); }
/* Narrow panels adapt to larger reading sizes instead of clipping a mode. */
.uwitch-observatory .uwo-debug-panel { container-type: inline-size; container-name: uwo-effects; }
.uwitch-observatory .uwo-mode-option span { min-width: 0; overflow-wrap: anywhere; }
@container uwo-effects (max-width: 18em) {
  .uwitch-observatory .uwo-mode-options { grid-template-columns: minmax(0, 1fr); }
}

/* Mobile pagination uses a stable number row and paired directions. */
@media (max-width: 560px) {
  .uwitch-observatory .wp-block-query-pagination { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .6em; align-items: stretch; }
  .uwitch-observatory .wp-block-query-pagination-numbers { grid-column: 1 / -1; grid-row: 1; justify-content: center; }
  .uwitch-observatory .wp-block-query-pagination-previous { grid-column: 1; grid-row: 2; text-align: center; }
  .uwitch-observatory .wp-block-query-pagination-next { grid-column: 2; grid-row: 2; text-align: center; }
}

/* Bring genuine writing examples closer to the home introduction. */
.uwitch-observatory .home-content .uwo-hero { min-height: 0; padding-block: calc(var(--uwo-section-gap) * .25); }
.uwitch-observatory .home-content .uwo-dock-wrap { margin-bottom: calc(var(--uwo-section-gap) * .5); }
.uwitch-observatory .home-content .uwo-paths { margin-block: calc(var(--uwo-section-gap) * .5); }
.uwitch-observatory .home-content .portfolio-evidence { margin-top: calc(var(--uwo-section-gap) * .5); }
/* The professional role supports one clear About page heading. */
.uwitch-observatory .about-intro-copy > h1 { margin-bottom: 0; }
.uwitch-observatory .about-intro-copy > .about-role { margin-top: calc(var(--uwo-gap) * .5); margin-bottom: var(--uwo-gap); font-size: var(--uwo-h3-size, var(--wp--preset--font-size--large)); line-height: 1.3; color: var(--uwo-text); }
/* Article directions remain native links and occupy balanced reading-width tiles. */
.uwitch-observatory .article-post-navigation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: var(--wp--style--global--content-size); margin-inline: auto; }
.uwitch-observatory .article-post-navigation:has(> .wp-block-post-navigation-link:empty) { grid-template-columns: minmax(0, 1fr); }
.uwitch-observatory .article-post-navigation .wp-block-post-navigation-link:empty { display: none; }
.uwitch-observatory .article-post-navigation .wp-block-post-navigation-link { min-width: 0; }
.uwitch-observatory .article-post-navigation a { display: flex; flex-direction: column; justify-content: center; gap: .5em; min-height: 44px; height: 100%; padding: calc(var(--uwo-panel-padding) * .65); border-radius: calc(var(--uwo-radius) * .5); background: color-mix(in srgb, var(--uwo-text) 3%, var(--uwo-panel)); text-decoration: none; overflow-wrap: anywhere; }
.uwitch-observatory .article-post-navigation a:hover .post-navigation-link__title { text-decoration: underline; }
.uwitch-observatory .post-navigation-link__label { color: var(--uwo-muted); font-size: var(--wp--preset--font-size--small); }
.uwitch-observatory .post-navigation-link__title { font-weight: 600; line-height: 1.45; }
/* Related writing fills a compact list instead of leaving empty grid columns. */
.uwitch-observatory .recent-posts { max-width: var(--wp--style--global--content-size); margin-inline: auto; }
.uwitch-observatory .recent-posts > .wp-block-group > :is(h2,p) { margin: 0; }
.uwitch-observatory .recent-posts > .wp-block-group > h2 { font-size: var(--uwo-h3-size, var(--wp--preset--font-size--large)); }
.uwitch-observatory .recent-posts .writing-grid .wp-block-post-template { grid-template-columns: minmax(0, 1fr); }
.uwitch-observatory .recent-posts .writing-grid:not(.writing-feed) .wp-block-post { display: grid; grid-template-columns: minmax(0, 10em) minmax(0, 1fr); align-items: center; padding: 0; }
.uwitch-observatory .recent-posts .writing-grid .wp-block-post-featured-image { aspect-ratio: 3 / 2; }
.uwitch-observatory .recent-posts .writing-grid .wp-block-post-title { margin-block: 0; }
@media (max-width: 560px) {
  .uwitch-observatory .article-post-navigation { grid-template-columns: minmax(0, 1fr); }
  .uwitch-observatory .recent-posts .writing-grid:not(.writing-feed) .wp-block-post { grid-template-columns: minmax(0, 1fr); }
  .uwitch-observatory .recent-posts .writing-grid .wp-block-post-title { margin-block: var(--uwo-panel-padding); }
}

/* Keep the three engineering roles on one consistent reading rhythm. */
.uwitch-observatory .topic-role > p { margin-block: 0; }
/* Bring Suletta's quote and artwork together at the shared reading width. */
.uwitch-observatory .unreal-quote { max-width: var(--wp--style--global--content-size); margin-inline: auto; }
.uwitch-observatory .unreal-quote .quote-columns { gap: var(--uwo-gap); }
.uwitch-observatory .unreal-quote .quote-copy > p { margin-bottom: calc(var(--uwo-gap) * .35); }
.uwitch-observatory .unreal-quote .quote-copy > :last-child { margin-bottom: 0; }

/* A small shared scale keeps the Observatory character with quieter surfaces. */
.uwitch-observatory { --uwo-space-1: calc(var(--uwo-gap) / 3); --uwo-space-2: calc(var(--uwo-gap) * 2 / 3); --uwo-radius-small: calc(var(--uwo-radius) * .5); --uwo-rule: color-mix(in srgb, var(--uwo-border-color) 55%, var(--uwo-panel)); }
.uwitch-observatory :is(.site-header,.site-footer,.uwo-hero-inner,.about-intro,.about-skills,.cv-intro,.topic-intro,.unreal-quote,.portfolio-title,.portfolio-section-head,.portfolio-evidence,.uwo-dock,.article-navigation,.wp-block-query-pagination,.recent-posts,.article-post-navigation) { border: 0; border-radius: var(--uwo-radius); }
.uwitch-observatory :is(.site-header,.site-footer,.uwo-hero-inner,.about-intro,.about-skills,.cv-intro,.topic-intro,.unreal-quote,.portfolio-title,.portfolio-section-head,.portfolio-evidence,.uwo-dock,.article-navigation,.wp-block-query-pagination,.recent-posts,.article-post-navigation) { background: var(--uwo-panel); }
.uwitch-observatory :is(.landing-panel,.skill-card,.cv-entry,.article-frame,.uwo-path-group) { border-color: var(--uwo-rule); border-radius: var(--uwo-radius); }
.uwitch-observatory :is(.site-identity .wp-block-site-title,.uwo-hero h1,.topic-role h1) { color: var(--uwo-text); }
.uwitch-observatory .site-identity { min-width: 0; flex-shrink: 1; }
.uwitch-observatory .identity-copy { min-width: 0; max-width: 32em; }
.uwitch-observatory .site-identity .wp-block-site-title { white-space: normal; line-height: 1.15; }
.uwitch-observatory .identity-descriptor { margin: 0; max-width: 38em; color: var(--uwo-muted); font-size: .8125em; line-height: 1.45; }
.uwitch-observatory .header-inner { gap: var(--uwo-space-2); }
.uwitch-observatory .site-header nav { flex-shrink: 0; }
.uwitch-observatory .uwo-kicker { color: var(--uwo-muted); font-size: .8125em; }
.uwitch-observatory .uwo-role { font-size: 1.125em; line-height: 1.5; font-weight: 500; }
.uwitch-observatory .landing-panel .landing-logo { background: var(--uwo-bg); border-color: transparent; border-radius: var(--uwo-radius-small); }
.uwitch-observatory .topic-intro-columns { grid-template-columns: 64px minmax(0,1fr); gap: var(--uwo-gap); }
.uwitch-observatory .topic-intro-columns .unreal-page-logo { max-width: 64px; }
.uwitch-observatory .topic-role > h1 { font-size: calc(var(--uwo-h2-size) * .75); margin-bottom: var(--uwo-space-1); }
.uwitch-observatory .page-unreal .portfolio-section-head h2 { font-size: var(--uwo-h3-size); }
.uwitch-observatory .writing-grid .wp-block-post:has(> .article-preview) { display: block; padding: 0; border: var(--uwo-border-width) var(--uwo-border-style,solid) var(--uwo-rule); border-radius: var(--uwo-radius); background: var(--uwo-panel); }
.uwitch-observatory .article-preview { display: flex; flex-direction: column; min-width: 0; height: 100%; gap: 0; }
.uwitch-observatory .article-preview > .wp-block-post-featured-image { margin: 0; aspect-ratio: 3 / 2; height: auto; min-height: 0; }
.uwitch-observatory .article-preview .wp-block-post-featured-image :is(img,video) { width: 100%; height: 100%; object-fit: contain; }
.uwitch-observatory .article-preview .feed-card-content { min-width: 0; margin: 0; padding: var(--uwo-panel-padding); }
.uwitch-observatory .article-preview .feed-card-content > * { margin: 0; }
.uwitch-observatory .article-preview .feed-card-content > * + * { margin-top: var(--uwo-space-2); }
.uwitch-observatory .article-preview .wp-block-post-title { margin: 0; font-size: var(--uwo-h3-size); font-weight: 650; line-height: 1.3; }
.uwitch-observatory .article-preview .wp-block-post-title a { color: var(--uwo-text); }
.uwitch-observatory .article-preview .wp-block-post-title a:hover { color: var(--uwo-amber); }
.uwitch-observatory .article-preview .card-meta { gap: var(--uwo-space-1) var(--uwo-space-2); font-size: .8125em; line-height: 1.5; color: var(--uwo-muted); }
.uwitch-observatory .article-preview .card-meta > * { margin: 0; font-size: inherit; }
.uwitch-observatory .article-preview .wp-block-post-excerpt { margin-inline: 0; color: var(--uwo-muted); }
.uwitch-observatory .article-preview .wp-block-post-excerpt p { margin: 0; }
.uwitch-observatory .writing-feed .article-preview { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); align-items: stretch; }
.uwitch-observatory .writing-feed .article-preview > .wp-block-post-featured-image { min-height: 14em; height: 100%; aspect-ratio: auto; }
.uwitch-observatory .writing-grid--home { margin-bottom: 0; }
.uwitch-observatory .portfolio-evidence > .writing-grid { margin-top: var(--uwo-gap); }
.uwitch-observatory .wp-block-button__link { border-radius: var(--uwo-radius-small); border-color: var(--uwo-rule); }
.uwitch-observatory .site-header .wp-block-navigation-item__content { color: var(--uwo-text); border-radius: var(--uwo-radius-small); }
.uwitch-observatory .site-header .portfolio-nav-cv > a { color: var(--uwo-panel); }
.uwitch-observatory .article-post-navigation a { border-radius: var(--uwo-radius-small); }
.uwitch-observatory .recent-posts .wp-block-post-title a { color: var(--uwo-text); }
.uwitch-observatory .recent-posts .wp-block-post-title a:hover { color: var(--uwo-amber); }
@supports (grid-template-rows: subgrid) {
  .uwitch-observatory .writing-grid:not(.writing-feed) .wp-block-post-template:has(.article-preview) > .wp-block-post { display: grid; grid-template-rows: subgrid; grid-row: span 4; row-gap: 0; }
  .uwitch-observatory .writing-grid:not(.writing-feed) .article-preview { display: grid; grid-template-rows: subgrid; grid-row: span 4; row-gap: 0; }
  .uwitch-observatory .writing-grid:not(.writing-feed) .article-preview .feed-card-content { display: grid; grid-template-rows: subgrid; grid-row: span 3; row-gap: var(--uwo-space-2); }
  .uwitch-observatory .writing-grid:not(.writing-feed) .article-preview .feed-card-content > * { margin: 0; }
}
@media (max-width: 781px) {
  .uwitch-observatory .writing-feed .article-preview { grid-template-columns: minmax(0,1fr); }
  .uwitch-observatory .writing-feed .article-preview > .wp-block-post-featured-image { min-height: 0; height: auto; aspect-ratio: 3 / 2; }
}
@media (max-width: 600px) {
  .uwitch-observatory .site-identity { gap: var(--uwo-space-1); }
  .uwitch-observatory .header-inner { align-items: flex-start; }
  .uwitch-observatory .identity-descriptor { font-size: .75em; }
  .uwitch-observatory .uwo-role { font-size: 1em; line-height: 1.6; }
  .uwitch-observatory .uwo-hero h1 { font-size: min(var(--wp--preset--font-size--hero), 11vw); }
  .uwitch-observatory .topic-intro-columns { grid-template-columns: 48px minmax(0,1fr); gap: var(--uwo-space-2); }
  .uwitch-observatory .topic-role > h1 { font-size: var(--uwo-h3-size); }
}

/* Retained source article media sizes also apply to Markdown rendering. */
.article-frame .wp-block-post-content img[src*="010b8ec8a0-da9d9c_7c140d0e180c482287433752d75e4f12~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="071cb827ae-da9d9c_7468567e4bfa4516bb2e93b92e3b977a~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="1105714fc1-da9d9c_62ad31d4e4774919b06feb8bbcccc646~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="12e5e23cd2-da9d9c_98d2a40ed5e049bbadf104adf1fe28af~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="15b11ed554-da9d9c_556eb69320574cea8c60ec5ffb18f7ca~mv2.png"]{display:block;width:588px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="15e14ad444-da9d9c_69e1d2025792479b9df30a80f9ac848e~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="190192665c-da9d9c_d02e716a71f54932948c262085a9627e~mv2.gif"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="19d1d272fa-da9d9c_2ac3d0b8b0c0425ca946a6a7de41ef2a~mv2.gif"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="219b2e9dd8-da9d9c_98e4af87d9564ac5a484920dc7d30095~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="23663b33c5-da9d9c_84b100e5dd3a4f0d9b3814ac974e61c0~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="2989c9a48c-da9d9c_cd7e77d1f1984c6f92b286c8add798e9~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="2f6e2351ce-da9d9c_64364a065662482d81d59a8fb6299d70~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="302812c76b-da9d9c_2e5bbc61dcf244b68fd9abebfa9f2796~mv2.gif"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="386621c0c1-da9d9c_22d1c8fedd394dd798f0c387d36a764f~mv2.gif"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="3e35f22f25-da9d9c_f7465fd1b4b6427aac5b238c33fd87b7~mv2.png"]{display:block;width:485px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="3fdfce6c61-da9d9c_b43b20e5d379460da18a72a0471346fd~mv2.gif"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="43fd895817-da9d9c_d51e5bf39c724e8d9c5c0f790ef5007e~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="45ef195963-da9d9c_c4d8a78614cd4d36b112d13a0e4d884e~mv2.png"]{display:block;width:212px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="4d8792847c-da9d9c_82bd1aee750f4d9bacc2aa2370e50935~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="4db4ea6016-da9d9c_5ac5fdf6bcdf4b4f93d8c154751fedb0~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="4e570464ac-da9d9c_6c3b0f22716143478499024795b1553c~mv2.png"]{display:block;width:303px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="4ea760e2a9-da9d9c_36c34a4f1af34f8f8e06df7b9be10a88~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="5a4333f384-da9d9c_6cd70f16cae24e2aa1bef37fc02993fe~mv2.jpg"]{display:block;width:530px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="65add9e8dd-da9d9c_4517cbfde18c4045ac83b4fe79116328~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="67dbd72e60-da9d9c_ca27b57be487458f8e9e85281422e859~mv2.gif"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="6994552865-da9d9c_ea490f739b5b482d9fc3cc3be83b32a7~mv2.jpg"]{display:block;width:270px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="7597629dec-da9d9c_eb62293abdda4c70bc8b14a3003fb986~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="77963bfbd8-da9d9c_668ea1e288874ac69e47d963e2d6ad50~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="7ffc990989-da9d9c_c95f6328768e4115b0c546dec2250004~mv2.png"]{display:block;width:645px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="8b4c03ba11-da9d9c_9526f583b2424855ac146208195e8bdf~mv2.gif"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="8ba6582f82-da9d9c_4e8d3dd96fa54dc581a78e39fc407a7c~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="8e7b628077-da9d9c_2ef31e8bfc7e4621bb23ee0bae930a7c~mv2.gif"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="a5aaa45687-da9d9c_85a416b0786646739f9331605c191e82~mv2.gif"]{display:block;width:245px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="b44132b248-da9d9c_81fc05b964fe46b79605656432c5f888~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="ba0d4f8d97-da9d9c_a86f807e08e24e0d980ee8c08ae43c92~mv2.gif"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="be0bb6bea1-da9d9c_e864d44e8b904e63a38652b594ce141b~mv2.png"]{display:block;width:513px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="c21c5350be-da9d9c_c38245c119b4464eb2c6b610d7538e92~mv2.jpg"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="c2dedc3504-da9d9c_e343c6cf3a21443da29accb109a9c63e~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="c32d572d19-da9d9c_24fee57596b546bcb3955475731feccd~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="c983b15377-da9d9c_6b1cb5ae912e474989e3070648762ddf~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="ca08bc9fc2-da9d9c_49657c250e8147a39a48461ae2a61b32~mv2.png"]{display:block;width:186px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="caa4ee480a-da9d9c_f3979adb23024159b88117f0e559ed40~mv2.png"]{display:block;width:541px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="cd94ace5b3-da9d9c_9a1288edbf984ff1a698a25e2cf80863~mv2.png"]{display:block;width:433px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="cfb724f45a-da9d9c_eb1c7779b4c943eaa98c07c55899cfe4~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="d4335e798a-da9d9c_58bc7ee401334bed86c04b85850d2b07~mv2.jpg"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="d4954c43f4-da9d9c_b7039e3ca7da47929950a67dd8547b71~mv2.jpg"]{display:block;width:396px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="d99e2dea48-da9d9c_9ebf7e9adc8b40dfb5fda2bb8582c7bd~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="da5b6fe5d1-da9d9c_19f0313e880745dfbf4b2dcfb673bfe1~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="e032faff64-da9d9c_7f1d979a58c54ddba12120bf8dc8817b~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="e33f3ae3d9-da9d9c_a1504241602a4bdd9e3acf1efb2bde6d~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="ed9abcc7d1-da9d9c_61ea118393ad4f4eb09c1dd1ebef15c1~mv2.gif"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="ee10e9a616-da9d9c_879f4fc8a5b440da91aa1f9b925337a7~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="f7293cbeb7-da9d9c_c17540571cd046fc92ce7f70ea90df7b~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="f8baa77bc8-da9d9c_677d235778ac4b9da7fb5f86427f1773~mv2.png"]{display:block;width:489px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="f97621a21a-da9d9c_34160b7253d0448d8f5dab81c65fb4ef~mv2.gif"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
.article-frame .wp-block-post-content img[src*="fd586bbeea-da9d9c_808a4486498647be82b99f9ed6023fbc~mv2.png"]{display:block;width:740px;max-width:100%;height:auto;margin-inline:auto;}
