/*
Theme Name: The Cathedral League
Theme URI: https://thecathedralleague.org
Author: Davies Carpenter
Description: Faith, fellowship and service. A spacious, photographic design for The Cathedral League.
Version: 0.3.3
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cathedral-league
*/

@font-face {
  font-family: Manrope;
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("assets/fonts/manrope-latin.woff2") format("woff2");
}

:root {
  --tcl-base: var(--wp--preset--color--base);
  --tcl-surface: var(--wp--preset--color--surface);
  --tcl-contrast: var(--wp--preset--color--contrast);
  --tcl-primary: var(--wp--preset--color--primary);
  --tcl-accent: var(--wp--preset--color--accent);
  --tcl-muted: var(--wp--preset--color--muted);
  --tcl-dark: var(--wp--preset--color--dark);
  --tcl-border: var(--wp--preset--color--border);
  --tcl-prose: var(--wp--preset--color--prose);
  --tcl-headline: var(--wp--preset--color--headline);
  --tcl-section: 6rem;
  --tcl-gutter: 2.5rem;
  --tcl-radius: 1.25rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 8rem; }
body { margin: 0; -webkit-font-smoothing: antialiased; }
body, button, input, textarea, select { font-family: Manrope, "Helvetica Neue", Arial, sans-serif; }
button, input, textarea, select { font-size: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
a { text-underline-offset: .25em; }
a:focus-visible, button:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--tcl-primary); outline-offset: 5px;
}
img { max-width: 100%; height: auto; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > *, .wp-site-blocks > main > * { margin-block-start: 0; }
.wp-block-template-part { margin: 0; }
.wp-block-group { box-sizing: border-box; }
.tcl-wrap { max-width: 80rem; margin-inline: auto; padding-inline: var(--tcl-gutter); }
.tcl-section { padding-block: var(--tcl-section); }
main.tcl-section { padding-top: 10.5rem; min-height: 60vh; padding-inline: var(--tcl-gutter); }
main.tcl-section > .tcl-wrap { padding-inline: 0; }
main.tcl-section > .tcl-section__h { margin-top: 0; }
.tcl-section--alt { background: var(--tcl-surface); }
.tcl-eyebrow {
  display: block; font-size: .75rem; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; margin: 0 0 1.25rem; color: var(--tcl-primary);
}
h1, h2, h3, h4 { font-family: Manrope, "Helvetica Neue", Arial, sans-serif; font-weight: 750; }
h1, h2 { letter-spacing: -.045em; }
.tcl-section__h {
  max-width: 48rem; margin: 0 auto 1.25rem; text-align: center;
  font-size: clamp(2rem, 3.7vw, 3rem); line-height: 1.13; color: var(--tcl-primary);
}
h1.tcl-section__h { font-size: clamp(2.25rem, 4.2vw, 3.75rem); margin-bottom: 1.5rem; }
.tcl-section__sub {
  color: var(--tcl-muted); max-width: 42rem; margin: 0 auto 3rem;
  text-align: center; font-size: 1.0625rem; line-height: 1.7;
}
.tcl-heading { text-align: center; margin-bottom: 3rem; }
.tcl-heading .tcl-section__sub { margin-bottom: 1.75rem; }

/* Shared interior pages: photographic introductions and a readable story column. */
.tcl-inner { min-height: 60vh; }
.tcl-skip { position: fixed; top: -5rem; left: 2rem; z-index: 100; padding: .875rem 1.25rem; background: #fff; color: var(--tcl-primary); border-radius: .75rem; }
.tcl-skip:focus { top: 1rem; }
.tcl-page-hero { position: relative; overflow: hidden; padding-block: 10rem 4rem; background: var(--tcl-primary); color: var(--tcl-base); }
.tcl-page-hero::before { content: ""; position: absolute; width: 42rem; aspect-ratio: 1; right: -15rem; top: -22rem; border: 1px solid rgb(255 255 255 / .14); border-radius: 50%; pointer-events: none; }
.tcl-page-hero__inner { display: grid; grid-template-columns: 1.15fr 1fr; align-items: center; gap: 4.5rem; position: relative; }
.tcl-page-hero__copy { min-width: 0; }
.tcl-breadcrumb { display: flex; gap: .75rem; align-items: center; font-size: .6875rem; color: #D5E0F5; margin-bottom: 2.5rem; }
.tcl-breadcrumb a { color: inherit; text-decoration: none; }
.tcl-breadcrumb a:hover { text-decoration: underline; }
.tcl-page-hero .tcl-eyebrow { color: var(--tcl-accent); font-size: .6875rem; }
.tcl-page-hero h1 { color: inherit; font-size: clamp(2.5rem, 4.5vw, 4.25rem); line-height: 1.08; margin: 0 0 1.5rem; max-width: 17ch; overflow-wrap: anywhere; }
.tcl-page-hero__intro { max-width: 36rem; color: #E1E8F6; font-size: 1.0625rem; line-height: 1.75; margin: 0; }
.tcl-page-hero__figure, .tcl-page-hero__visual .tcl-figure { margin: 0; background: #fff; border-radius: 1.25rem; padding: .5rem; color: var(--tcl-dark); rotate: 1.5deg; box-shadow: 0 20px 60px rgb(15 28 63 / .18); }
.tcl-page-hero__image, .tcl-page-hero__visual .tcl-figure img { display: block; width: 100%; height: 19rem; object-fit: cover; object-position: center 38%; border-radius: .875rem; }
.tcl-page-hero__visual--document .tcl-figure img { object-fit: contain; background: var(--tcl-surface); }
.tcl-page-hero__figure figcaption, .tcl-page-hero__visual .tcl-figure__caption { display: flex; gap: .75rem; flex-wrap: wrap; justify-content: space-between; padding: 1rem .75rem .625rem; font-size: .6875rem; line-height: 1.6; color: var(--tcl-muted); }
.tcl-page-hero__figure figcaption span { display: block; }
.tcl-page-hero__visual--portrait { justify-self: center; width: min(100%, 19rem); }
.tcl-page-hero__portrait { padding: .5rem; border-radius: 1.25rem; background: #fff; rotate: 1.5deg; }
.tcl-page-hero__portrait > img, .tcl-page-hero__portrait .tcl-portrait--placeholder { height: 24rem; width: 100%; border-radius: .875rem; object-fit: cover; }
.tcl-page-hero__badges { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.tcl-page-hero__badge { font-size: .6875rem; padding: .5rem .875rem; border-radius: 999px; border: 1px solid rgb(255 255 255 / .35); color: var(--tcl-base); }
.tcl-page-hero a:focus-visible { outline-color: var(--tcl-accent); }
.tcl-page-content { padding-block: 4.5rem 6rem; }
.tcl-reading-layout { display: grid; grid-template-columns: 14rem minmax(0, 1fr); align-items: start; gap: 3rem; }
.tcl-page-guide { position: sticky; top: 8rem; min-width: 0; }
.tcl-page-guide .tcl-eyebrow { font-size: .625rem; }
.tcl-page-guide nav > a { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--tcl-border); font-size: .8125rem; font-weight: 650; line-height: 1.5; color: var(--tcl-dark); text-decoration: none; }
.tcl-page-guide nav > a:hover { color: var(--tcl-primary); }
.tcl-page-guide__motto { padding: 2rem 0 0; color: var(--tcl-primary); }
.tcl-page-guide__motto svg { width: 1.625rem; height: 2.75rem; }
.tcl-page-guide__motto p { margin: .75rem 0 .5rem; font-weight: 750; letter-spacing: -.035em; font-size: 1.125rem; }
.tcl-page-guide__motto > span { font-size: .75rem; line-height: 1.6; color: var(--tcl-muted); }
.tcl-page-guide__chapters { margin-top: 2rem; font-size: .75rem; }
.tcl-page-guide__chapters summary { cursor: pointer; color: var(--tcl-primary); font-weight: 750; padding-block: .5rem; }
.tcl-page-guide__chapters nav { max-height: 15rem; overflow-y: auto; }
.tcl-page-guide__chapters nav > a { font-size: .6875rem; font-weight: 500; padding: .625rem 0; }
.tcl-prose-panel { min-width: 0; border-radius: var(--tcl-radius); padding: clamp(1.5rem, 4vw, 3.5rem); background: #fff; border: 1px solid var(--tcl-border); }
.tcl-prose-panel .wp-block-post-content { max-width: 46rem; margin-inline: auto; }
.tcl-prose-panel .wp-block-post-content > :first-child { margin-top: 0; }
.tcl-prose-panel .wp-block-post-content > :last-child { margin-bottom: 0; }
.tcl-prose-panel .wp-block-post-content > p:first-child { font-size: 1.125rem; line-height: 1.8; color: var(--tcl-dark); }
.tcl-prose-panel .wp-block-post-content h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.2; letter-spacing: -.04em; color: var(--tcl-primary); padding-top: 1.5rem; border-top: 1px solid var(--tcl-border); scroll-margin-top: 8rem; }
.tcl-prose-panel .wp-block-post-content h3 { line-height: 1.35; }
.tcl-prose-panel .wp-block-post-content li { padding-left: .25rem; margin-bottom: .75rem; }
.tcl-prose-panel .wp-block-post-content a { color: var(--tcl-primary); font-weight: 650; }
.tcl-prose-panel .tcl-note { background: var(--tcl-surface); padding: 1.5rem; }
.tcl-prose-panel .wp-block-post-content table { border-collapse: collapse; width: 100%; font-size: .8125rem; }
.tcl-prose-panel .wp-block-post-content td, .tcl-prose-panel .wp-block-post-content th { text-align: left; padding: .875rem; border-bottom: 1px solid var(--tcl-border); }
.tcl-page-content .wp-block-query-no-results { padding: 2rem; background: #fff; border: 1px solid var(--tcl-border); border-radius: var(--tcl-radius); color: var(--tcl-muted); }
.tcl-page-content .wp-block-post-template { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; padding: 0; }
.tcl-page-content .wp-block-post-template > li { list-style: none; min-width: 0; padding: 2rem; background: #fff; border: 1px solid var(--tcl-border); border-radius: var(--tcl-radius); }
.tcl-page-content .wp-block-post-title { font-size: 1.5rem; line-height: 1.3; margin-top: 0; }
.tcl-page-content .wp-block-post-title a { color: var(--tcl-primary); text-decoration: none; }
.tcl-page-content .wp-block-post-date { font-size: .75rem; color: var(--tcl-muted); }
.tcl-page-content .wp-block-post-excerpt { font-size: .875rem; line-height: 1.8; color: var(--tcl-muted); }
.tcl-page-content .wp-block-search { margin-bottom: 2.5rem; }
.tcl-page-content .wp-block-search__input { border: 1px solid var(--tcl-border); border-radius: .75rem; padding: 1rem; min-width: 0; }
.tcl-page-content .wp-block-search__button { border: 0; border-radius: .75rem; background: var(--tcl-primary); color: #fff; padding-inline: 1.5rem; }
.tcl-list-heading { color: var(--tcl-primary); font-size: 2rem; margin: 4rem 0 1.5rem; }
.tcl-directory-nav { display: flex; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.5rem; background: #fff; border: 1px solid var(--tcl-border); border-radius: 1rem; margin-bottom: 3rem; }
.tcl-directory-nav a { color: var(--tcl-primary); text-decoration: none; font-size: .8125rem; font-weight: 650; display: flex; align-items: center; gap: .75rem; }
.tcl-directory-nav span { background: var(--tcl-surface); color: var(--tcl-dark); border-radius: 999px; padding: .25rem .625rem; font-size: .6875rem; }
.tcl-member-group > .tcl-section__h { text-align: left; margin-inline: 0; max-width: none; font-size: 2rem; }
.tcl-member-group__intro { font-size: .9375rem; color: var(--tcl-muted); max-width: 45rem; line-height: 1.7; margin-bottom: 2rem; }
.tcl-member-group { scroll-margin-top: 8rem; }

/* Photograph carousel: large frames, native swiping and explicit controls. */
.tcl-gallery-carousel { background: var(--tcl-base); }
.tcl-gallery-carousel__heading { display: flex; gap: 3rem; justify-content: space-between; align-items: end; margin-bottom: 2.5rem; }
.tcl-gallery-carousel__heading .tcl-section__h, .tcl-gallery-carousel__heading .tcl-section__sub { text-align: left; margin-inline: 0; }
.tcl-gallery-carousel__heading .tcl-section__sub { max-width: 32rem; margin-bottom: 0; }
.tcl-gallery-carousel__heading .tcl-cta { flex-shrink: 0; }
.tcl-gallery-carousel__track { display: flex; gap: 1.5rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--tcl-primary) var(--tcl-surface); padding: .25rem 0 1rem; }
.tcl-gallery-slide { flex: 0 0 56%; min-width: 0; margin: 0; overflow: hidden; border-radius: var(--tcl-radius); background: #fff; scroll-snap-align: start; }
.tcl-gallery-slide__image { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: center 40%; }
.tcl-gallery-slide figcaption { display: flex; gap: 1rem; padding: 1.5rem; font-size: .8125rem; color: var(--tcl-dark); font-weight: 600; line-height: 1.6; }
.tcl-gallery-slide__number { color: var(--tcl-primary); font-size: .6875rem; padding-top: .125rem; }
.tcl-gallery-slide small { display: block; font-size: .625rem; color: var(--tcl-muted); font-weight: 400; margin-top: .375rem; }
.tcl-gallery-carousel__footer { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.tcl-gallery-carousel__footer > p { font-size: .75rem; color: var(--tcl-muted); margin: 0; }
.tcl-gallery-carousel__controls { display: flex; align-items: center; gap: 1rem; color: var(--tcl-primary); }
.tcl-gallery-carousel__controls[hidden] { display: none; }
.tcl-gallery-carousel__controls button { display: grid; place-items: center; width: 2.875rem; height: 2.875rem; border: 1px solid var(--tcl-border); border-radius: 50%; background: #fff; color: var(--tcl-primary); cursor: pointer; transition: background .25s ease, transform .25s ease; }
.tcl-gallery-carousel__controls button:hover { background: var(--tcl-surface); transform: translateY(-2px); }
.tcl-gallery-carousel__controls button:disabled { opacity: .4; cursor: default; transform: none; }
.tcl-gallery-carousel__controls > span { font-size: .6875rem; font-variant-numeric: tabular-nums; }
.tcl-page-content > .tcl-gallery-carousel { margin-inline: calc(-1 * var(--tcl-gutter)); padding-top: 0; padding-bottom: 4rem; }
.tcl-albums { padding-top: 3rem; border-top: 1px solid var(--tcl-border); }
.tcl-albums > h2 { color: var(--tcl-primary); font-size: 2rem; margin-top: 0; }

/* Floating masthead */
.tcl-header {
  position: fixed; top: 1rem; left: 1rem; right: 1rem; z-index: 50;
  max-width: 88rem; margin-inline: auto; color: var(--tcl-dark);
  background: #fff; border-radius: 1rem; box-shadow: 0 4px 30px rgb(15 28 63 / .07);
}
.tcl-header__inner {
  min-height: 5rem; max-width: none; display: flex; align-items: center;
  justify-content: space-between; gap: 2rem; padding: 1rem 2rem;
}
.tcl-brand { display: flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--tcl-dark); flex: 0 0 20rem; }
.tcl-brand svg { width: 1.65rem; height: 2.5rem; flex-shrink: 0; }
.tcl-brand__name { display: block; font-size: 1.125rem; font-weight: 800; letter-spacing: -.04em; }
.tcl-brand__sub { display: block; font-size: .5625rem; letter-spacing: .02em; margin-top: .125rem; color: var(--tcl-muted); }
.tcl-nav { display: flex; flex: 1; align-items: center; gap: 1.75rem; }
.tcl-nav a { color: var(--tcl-dark); text-decoration: none; font-size: .875rem; font-weight: 600; padding-block: .5rem; }
.tcl-nav a:hover, .tcl-nav a[aria-current] { color: var(--tcl-primary); }
.tcl-nav__link { position: relative; }
.tcl-nav__link[aria-current]::after { content: ""; position: absolute; height: 2px; background: var(--tcl-primary); bottom: .125rem; left: 0; right: 0; border-radius: 2px; }
.tcl-nav a.tcl-nav__contact { margin-left: auto; border-radius: 999px; background: var(--tcl-accent); padding: .75rem 1.35rem; color: var(--tcl-dark); }
.tcl-nav a.tcl-nav__contact::after { content: "↗"; padding-left: .625rem; }
.tcl-navtoggle { display: none; width: 2.75rem; height: 2.75rem; align-items: center; justify-content: center; background: var(--tcl-base); border: 0; border-radius: 50%; color: var(--tcl-dark); cursor: pointer; }
.tcl-navtoggle__bars, .tcl-navtoggle__bars::before, .tcl-navtoggle__bars::after { display: block; width: 1.125rem; height: 2px; background: currentColor; }
.tcl-navtoggle__bars { position: relative; }
.tcl-navtoggle__bars::before, .tcl-navtoggle__bars::after { content: ""; position: absolute; left: 0; }
.tcl-navtoggle__bars::before { top: -6px; }
.tcl-navtoggle__bars::after { top: 6px; }

/* Full-bleed photography, with one stable motto and a quiet slider control. */
.tcl-hero { position: relative; isolation: isolate; overflow: hidden; min-height: clamp(42rem, 88svh, 60rem); background: var(--tcl-primary); color: var(--tcl-base); touch-action: pan-y; }
.tcl-hero__slides, .tcl-hero__wash { position: absolute; inset: 0; }
.tcl-hero__slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.1s ease; }
.tcl-hero__slide.is-active { opacity: 1; z-index: 1; }
.tcl-hero__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 38%; transform: scale(1.025); }
.tcl-hero__slide:nth-child(2) .tcl-hero__photo { object-position: center 42%; }
.tcl-hero__slide.is-active .tcl-hero__photo { animation: tcl-hero-drift 12s ease-out both; }
.tcl-hero[data-playing="false"] .tcl-hero__photo { animation-play-state: paused; }
.tcl-hero__wash { z-index: 2; pointer-events: none; background: linear-gradient(180deg, rgb(15 28 63 / .12) 0%, rgb(15 28 63 / .18) 30%, rgb(15 28 63 / .8) 68%, #0F1C3F 100%); }
.tcl-hero__inner { position: relative; z-index: 3; min-height: inherit; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; padding-block: 15rem 9rem; }
.tcl-hero .tcl-eyebrow { display: flex; align-items: center; gap: .75rem; color: var(--tcl-accent); font-size: .6875rem; letter-spacing: .16em; margin: 0 0 1.25rem; animation: tcl-hero-enter .8s both; }
.tcl-hero .tcl-eyebrow::before { content: ""; height: 1px; width: 2.5rem; background: currentColor; }
.tcl-hero h1 { color: var(--tcl-base); max-width: 62rem; margin: 0 0 1.25rem; font-size: clamp(3rem, 6.3vw, 5.75rem); font-weight: 800; line-height: 1.04; letter-spacing: -.06em; animation: tcl-hero-enter 1s .12s both; }
.tcl-hero__sub { max-width: 36rem; font-size: 1.25rem; line-height: 1.6; margin: 0 0 1.75rem; color: #E8EEFF; animation: tcl-hero-enter 1s .22s both; }
.tcl-hero__actions { display: flex; gap: .75rem; flex-wrap: wrap; animation: tcl-hero-enter 1s .32s both; }
.tcl-hero__caption { position: absolute; z-index: 4; left: max(var(--tcl-gutter), calc((100vw - 75rem) / 2)); bottom: 2.5rem; max-width: 45%; margin: 0; color: #E1E8F6; font-size: .6875rem; letter-spacing: .02em; }
.tcl-hero__controls { position: absolute; z-index: 4; right: max(var(--tcl-gutter), calc((100vw - 75rem) / 2)); bottom: 1.65rem; display: flex; align-items: center; gap: 2rem; }
.tcl-hero__controls[hidden] { display: none; }
.tcl-hero__dots, .tcl-hero__buttons { display: flex; align-items: center; gap: .5rem; }
.tcl-hero__dot { display: flex; align-items: center; width: 2.75rem; height: 2.75rem; padding: .5rem 0; border: 0; background: transparent; cursor: pointer; }
.tcl-hero__dot span { width: 100%; height: 3px; border-radius: 4px; background: rgb(255 255 255 / .3); transition: background .35s ease; }
.tcl-hero__dot.is-active span { background: var(--tcl-accent); }
.tcl-hero__buttons > button { width: 2.75rem; height: 2.75rem; border: 1px solid rgb(255 255 255 / .35); border-radius: 50%; color: var(--tcl-base); background: rgb(15 28 63 / .45); cursor: pointer; transition: background .3s ease, border-color .3s ease; }
.tcl-hero__buttons > button:hover { background: var(--tcl-primary); border-color: var(--tcl-accent); }
.tcl-hero__count { padding-inline: .5rem; font-size: .6875rem; font-variant-numeric: tabular-nums; }
.tcl-hero__buttons .tcl-hero__pause { font-size: .625rem; }
@keyframes tcl-hero-drift { from { transform: scale(1.025); } to { transform: scale(1.075); } }
@keyframes tcl-hero-enter { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
.tcl-cta, .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: .875rem;
  border-radius: 999px; min-height: 2.875rem; padding: .8rem 1.5rem;
  background: var(--tcl-dark); color: #fff; text-decoration: none;
  font-size: .875rem; font-weight: 600; line-height: 1.4;
  border: 1px solid transparent; transition: background .2s ease, transform .2s ease;
}
.tcl-cta:hover { background: var(--tcl-primary); color: #fff; transform: translateY(-2px); }
.tcl-cta--accent { background: var(--tcl-accent); color: var(--tcl-dark); }
.tcl-cta--accent:hover { background: #D4E2FF; color: var(--tcl-dark); }
.tcl-cta--outline { background: transparent; border-color: currentColor; color: inherit; }
.tcl-cta--outline:hover { background: rgb(255 255 255 / .1); color: inherit; }
.tcl-hero a:focus-visible { outline-color: var(--tcl-accent); }

/* The League in numbers */
.tcl-band { background: var(--tcl-base); padding-block: 3rem; }
.tcl-band__inner { max-width: 58rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; text-align: center; }
.tcl-band__inner > div + div { border-left: 1px solid var(--tcl-border); }
.tcl-band strong { display: block; font-size: 3rem; font-weight: 750; line-height: 1.1; color: var(--tcl-primary); letter-spacing: -.055em; margin-bottom: .5rem; }
.tcl-band span { display: block; font-size: .8125rem; color: var(--tcl-muted); }

/* A few clear doors into the story */
.tcl-intro { padding: 4rem 0 6rem; }
.tcl-intro__inner { max-width: 80rem; margin: auto; padding-inline: var(--tcl-gutter); }
.tcl-intro__heading { text-align: center; margin-bottom: 3rem; }
.tcl-intro__h { font-size: clamp(2rem, 3.7vw, 3rem); line-height: 1.13; max-width: 45rem; margin: 0 auto 1.5rem; color: var(--tcl-primary); }
.tcl-intro__p { font-size: 1.0625rem; line-height: 1.7; max-width: 42rem; margin: 0 auto 1.75rem; color: var(--tcl-muted); }
.tcl-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; }
.tcl-feature { position: relative; border-radius: var(--tcl-radius); padding: 2rem; min-height: 21rem; background: #fff; overflow: hidden; display: flex; flex-direction: column; text-decoration: none; color: var(--tcl-dark); }
.tcl-feature h3 { font-size: 1.75rem; line-height: 1.12; margin: 1.75rem 0 1rem; max-width: 14rem; letter-spacing: -.045em; color: inherit; }
.tcl-feature p { font-size: .875rem; line-height: 1.7; margin: 0; }
.tcl-feature__icon { font-size: 1.0625rem; font-weight: 750; letter-spacing: -.03em; }
.tcl-feature__link { margin-top: auto; padding-top: 2rem; font-size: .75rem; font-weight: 650; display: flex; justify-content: space-between; }
.tcl-feature__link span { font-size: 1.3rem; }
.tcl-feature--lilac { background: var(--tcl-surface); }
.tcl-feature--photo { justify-content: flex-end; color: #fff; isolation: isolate; }
.tcl-feature--photo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(transparent 15%, rgb(15 28 63 / .8)); }
.tcl-feature--photo img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.tcl-feature--photo h3 { margin: 0 0 1rem; }
.tcl-feature:hover .tcl-feature__link { text-decoration: underline; }

/* Cards, including the full member and project archives */
.tcl-grid { display: grid; gap: 1.5rem; margin-top: 1.5rem; }
.tcl-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tcl-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tcl-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tcl-card { background: #fff; border-radius: var(--tcl-radius); overflow: hidden; border: 1px solid rgb(15 28 63 / .04); box-shadow: none; }
.tcl-card > a { display: block; height: 100%; text-decoration: none; color: var(--tcl-dark); }
.tcl-card__img { display: block; width: 100%; height: 14rem; object-fit: cover; }
.tcl-card__img--tall { height: 21rem; }
.tcl-card__body { padding: 1.75rem; }
.tcl-card h2, .tcl-card h3 { color: var(--tcl-dark); font-size: 1.375rem; line-height: 1.2; letter-spacing: -.035em; margin: .25rem 0 .85rem; }
.tcl-card a:hover h2, .tcl-card a:hover h3 { color: var(--tcl-primary); }
.tcl-card__meta { color: var(--tcl-muted); font-size: .875rem; line-height: 1.7; margin: 0; }
.tcl-card__more { display: flex; justify-content: space-between; align-items: center; margin-top: 1.75rem; font-size: .75rem; font-weight: 650; color: var(--tcl-primary); }
.tcl-card__more span { font-size: 1.25rem; }
.tcl-card__art { height: 14rem; background: var(--tcl-surface); display: flex; align-items: center; justify-content: center; color: var(--tcl-primary); }
.tcl-card__art svg { width: 3.25rem; height: 6rem; opacity: .5; }
.tcl-badge { display: inline-block; border-radius: 999px; padding: .375rem .75rem; margin-bottom: .875rem; font-size: .6875rem; font-weight: 650; background: var(--tcl-surface); color: var(--tcl-dark); }
.tcl-badge--role { background: var(--tcl-surface); }
.tcl-portrait--placeholder { display: flex; align-items: center; justify-content: center; background: var(--tcl-surface); color: var(--tcl-primary); }
.tcl-portrait--placeholder .tcl-portrait__name { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.tcl-section .tcl-grid + .tcl-section__h { margin-top: 5rem; }

/* The timeline is a touch- and keyboard-scrollable strip on the homepage. */
.tcl-journey { background: var(--tcl-base); }
.tcl-journey .tcl-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 1.5rem; scrollbar-width: thin; scrollbar-color: var(--tcl-primary) var(--tcl-surface); }
.tcl-journey .tcl-card { flex: 0 0 17.5rem; scroll-snap-align: start; background: var(--tcl-surface); }
.tcl-journey .tcl-card__body { padding: 1.75rem; }
.tcl-journey .tcl-badge { padding: 0; font-size: 2.75rem; font-weight: 750; letter-spacing: -.055em; color: var(--tcl-primary); }
.tcl-journey .tcl-card__img { display: none; }
.tcl-journey .tcl-card h3 { font-size: 1.1875rem; }
.tcl-journey .tcl-card__meta { font-size: .8125rem; }
.tcl-journey__hint { margin-top: 1rem; text-align: center; font-size: .75rem; color: var(--tcl-muted); }
.tcl-section--works { background: #EDF2FC; }

/* The photograph lives on the reverse; links and a touch control stay explicit. */
.tcl-flip { position: relative; padding: 0; overflow: visible; perspective: 1200px; background: transparent; border: 0; }
.tcl-flip__inner { display: grid; height: 100%; transform-style: preserve-3d; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.tcl-flip.is-flipped .tcl-flip__inner { transform: rotateY(180deg); }
.tcl-flip__face { grid-area: 1 / 1; border-radius: var(--tcl-radius); overflow: hidden; backface-visibility: hidden; -webkit-backface-visibility: hidden; min-width: 0; border: 1px solid rgb(15 28 63 / .06); }
.tcl-flip__front { background: #fff; }
.tcl-flip__front > a { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
.tcl-flip__front .tcl-card__body { display: flex; flex: 1; flex-direction: column; }
.tcl-flip__front .tcl-badge { align-self: flex-start; }
.tcl-flip__front .tcl-card__more { margin-top: auto; padding-top: 1.75rem; }
.tcl-flip__back { display: flex; flex-direction: column; transform: rotateY(180deg); background: var(--tcl-dark); color: var(--tcl-base); }
.tcl-flip__figure { position: relative; flex: 1; min-height: 17rem; margin: 0; }
.tcl-flip__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.tcl-flip__figure figcaption { position: absolute; inset: auto 0 0; padding: 4rem 1.5rem 1.25rem; background: linear-gradient(transparent, rgb(15 28 63 / .98)); font-size: .75rem; line-height: 1.6; color: var(--tcl-base); }
.tcl-flip__figure figcaption > span { display: block; }
.tcl-flip__figure .tcl-figure__provenance { color: var(--tcl-accent); padding-top: .375rem; }
.tcl-flip__kicker { text-transform: uppercase; letter-spacing: .09em; font-size: .5625rem; margin-bottom: .5rem; color: var(--tcl-accent); }
.tcl-flip__story { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 3.5rem; padding: 1rem 1.5rem; text-decoration: none; color: var(--tcl-accent); font-size: .75rem; font-weight: 650; }
.tcl-flip__story:hover { color: #fff; }
.tcl-flip__toggle { position: absolute; z-index: 3; top: 1rem; right: 1rem; display: inline-flex; align-items: center; gap: .5rem; min-height: 2.75rem; padding: .625rem .875rem; background: #fff; border: 1px solid var(--tcl-border); border-radius: 999px; color: var(--tcl-primary); font-size: .625rem; font-weight: 650; cursor: pointer; transition: background .3s ease, box-shadow .3s ease; }
.tcl-flip__toggle[hidden] { display: none; }
.tcl-flip__toggle > span:last-child { font-size: 1.125rem; }
.tcl-flip__toggle:hover { background: var(--tcl-surface); box-shadow: 0 4px 16px rgb(15 28 63 / .1); }
.tcl-feature.tcl-flip { min-height: 22rem; }
.tcl-feature.tcl-flip .tcl-flip__front { background: var(--tcl-surface); }
.tcl-feature__content { display: flex; flex-direction: column; min-height: 22rem; padding: 2rem; }
.tcl-feature__content .tcl-feature__icon { padding-right: 6rem; }
.tcl-feature__content .tcl-feature__link { margin-top: auto; padding-top: 2rem; }
.tcl-journey .tcl-flip__front { background: var(--tcl-surface); }
.tcl-journey .tcl-flip__face { min-height: 25rem; }
.tcl-member-group + .tcl-member-group { margin-top: 5rem; }

/* Film: a quiet player until someone chooses to watch. */
.tcl-film-section { background: #142A63; padding-block: var(--tcl-section); color: var(--tcl-base); }
.tcl-film-section__inner { display: block; }
.tcl-film-section__intro { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: end; margin-bottom: 3rem; }
.tcl-film-section__h { color: var(--tcl-base); text-align: left; margin: 0; }
.tcl-film-section__sub { color: #D5E0F5; text-align: left; margin: 0 0 1.5rem; max-width: 35rem; font-size: 1.0625rem; }
.tcl-film-section .tcl-eyebrow { color: var(--tcl-accent); }
.tcl-film { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: var(--tcl-radius); overflow: hidden; background: var(--tcl-dark); box-shadow: 0 25px 70px rgb(0 0 0 / .2); }
.tcl-film__poster, .tcl-film__frame { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border: 0; object-fit: cover; }
.tcl-film__poster { object-position: center 62%; }
.tcl-film__play { position: absolute; inset: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; border: 0; background: rgb(15 28 63 / .1); cursor: pointer; padding: 0; }
.tcl-film__triangle { width: 6rem; height: 6rem; border-radius: 50%; background: var(--tcl-accent); display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 12px rgb(191 212 255 / .15); transition: transform .3s ease, box-shadow .3s ease; }
.tcl-film__triangle::after { content: ""; border-style: solid; border-width: .6rem 0 .6rem 1rem; border-color: transparent transparent transparent var(--tcl-dark); margin-left: .25rem; }
.tcl-film__play:hover .tcl-film__triangle { transform: scale(1.08); }
.tcl-film__play:focus-visible { outline: 3px solid var(--tcl-accent); outline-offset: -6px; }

/* Documents, captions and prose */
.tcl-figure { margin: 2rem 0; }
.tcl-figure img { display: block; width: 100%; border-radius: var(--tcl-radius); }
.tcl-figure__caption { display: flex; justify-content: space-between; gap: 1.25rem; padding-top: .75rem; font-size: .8125rem; color: var(--tcl-muted); }
.tcl-figure__provenance { display: block; font-size: .6875rem; letter-spacing: .025em; color: var(--tcl-muted); }
.tcl-card__provenance { padding: .875rem 1.75rem 0; }
.tcl-card__provenance + .tcl-card__body { padding-top: 1rem; }
.wp-block-post-content { font-size: 1.0625rem; line-height: 1.85; color: var(--tcl-prose); }
.wp-block-post-content h2 { font-size: 2rem; margin-top: 3rem; }
.wp-block-post-content h3 { font-size: 1.375rem; }
.wp-block-post-content figure { margin-block: 2rem; }
.wp-block-post-content img, .wp-block-post-featured-image img { border-radius: var(--tcl-radius); }
.wp-block-post-content blockquote { margin-inline: 0; border-left: 3px solid var(--tcl-primary); padding: 1.5rem 2rem; background: var(--tcl-surface); border-radius: 0 1rem 1rem 0; }
.tcl-note { color: var(--tcl-muted); background: #fff; border-radius: var(--tcl-radius); padding: 2.5rem; font-size: .9375rem; }

/* Questions use native details, so they work before JavaScript loads. */
.tcl-faq__inner { display: grid; grid-template-columns: 1fr 1.4fr; gap: 5rem; }
.tcl-faq .tcl-section__h, .tcl-faq .tcl-section__sub { text-align: left; margin-inline: 0; }
.tcl-faq details { background: #fff; border-radius: .875rem; margin-bottom: .75rem; padding: 0 1.5rem; }
.tcl-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; padding: 1.25rem 0; font-size: .875rem; font-weight: 650; color: var(--tcl-primary); }
.tcl-faq summary::-webkit-details-marker { display: none; }
.tcl-faq summary::after { content: "+"; font-size: 1.125rem; line-height: 1.2; }
.tcl-faq details[open] summary::after { content: "−"; }
.tcl-faq details p { padding-bottom: 1.5rem; margin: 0; color: var(--tcl-muted); font-size: .875rem; line-height: 1.75; }

/* Footer, with a clear invitation and an oversized wordmark. */
.tcl-connect { background: #142A63; color: var(--tcl-base); padding-block: 5rem; }
.tcl-connect__inner { display: flex; justify-content: space-between; align-items: center; gap: 3rem; }
.tcl-connect h2 { color: inherit; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.1; letter-spacing: -.045em; margin: 0 0 1rem; max-width: 40rem; }
.tcl-connect p { color: #D5E0F5; font-size: .9375rem; margin: 0; max-width: 35rem; }
.tcl-connect .tcl-cta { flex-shrink: 0; }
.tcl-footer { background: var(--tcl-dark); color: var(--tcl-base); padding-block: 4rem 1.5rem; }
.tcl-footer__inner { display: flex; justify-content: space-between; align-items: flex-start; gap: 4rem; }
.tcl-footer__brand { max-width: 18rem; font-size: .8125rem; color: #BFCBE2; }
.tcl-footer__brand svg { width: 2rem; height: 3.25rem; color: var(--tcl-base); margin-bottom: 1rem; }
.tcl-footer__brand strong { display: block; font-size: 1rem; color: var(--tcl-base); margin-bottom: 1rem; }
.tcl-footer__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4rem; font-size: .8125rem; line-height: 1.85; }
.tcl-footer__cols strong { display: block; font-size: .6875rem; text-transform: uppercase; letter-spacing: .09em; margin-bottom: 1rem; color: var(--tcl-accent); }
.tcl-footer__cols a { display: block; text-decoration: none; color: #E1E8F6; margin-bottom: .25rem; }
.tcl-footer__cols a:hover { text-decoration: underline; }
.tcl-footer__cols p { color: #BFCBE2; margin: 0; }
.tcl-footer__wordmark { display: block; font-size: clamp(3rem, 8.75vw, 9rem); font-weight: 800; line-height: 1.12; letter-spacing: -.07em; padding-block: 4.5rem 2.5rem; white-space: nowrap; color: var(--tcl-base); }
.tcl-footer__bottom { border-top: 1px solid rgb(255 255 255 / .16); padding-top: 1.5rem; display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font-size: .6875rem; color: #BFCBE2; }

.tcl-news__list { list-style: none; margin: 0; padding: 0; }
.tcl-news__item { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: 1.5rem; background: #fff; border-radius: 1rem; margin-bottom: .75rem; }
.tcl-news__item a { font-weight: 650; text-decoration: none; color: var(--tcl-primary); }
.tcl-news__item time { font-size: .8125rem; color: var(--tcl-muted); }

/* Entrances are enabled only after the observer is ready; content works without JS. */
.tcl-header { transition: top .3s ease, box-shadow .3s ease; }
.tcl-header.is-scrolled { top: .5rem; box-shadow: 0 8px 30px rgb(15 28 63 / .16); }
body.admin-bar .tcl-header { top: 3rem; }
.tcl-card { transition: translate .3s ease, box-shadow .3s ease; }
.tcl-card:hover { translate: 0 -4px; }
.tcl-card__img { transition: transform .55s ease; }
.tcl-card:hover .tcl-card__img { transform: scale(1.025); }
body.tcl-motion-ready .tcl-reveal { transition: translate .3s ease, box-shadow .3s ease; }
body.tcl-motion-ready .tcl-reveal.is-visible { animation: tcl-section-enter .75s var(--tcl-reveal-delay, 0ms) cubic-bezier(.2,.7,.2,1) both; }
@keyframes tcl-section-enter { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 68rem) {
  .tcl-header__inner { gap: 1rem; }
  .tcl-nav { gap: 1.125rem; }
  .tcl-brand { flex-basis: auto; }
  .tcl-brand__sub { display: none; }
  .tcl-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tcl-footer__cols { gap: 2rem; }
}
@media (max-width: 56rem) {
  :root { --tcl-gutter: 1.5rem; --tcl-section: 4rem; }
  .tcl-header { left: 1rem; right: 1rem; top: 1rem; }
  .tcl-header__inner { position: relative; min-height: 3.75rem; padding: .5rem 1rem; }
  .tcl-brand__name { font-size: 1.0625rem; }
  .tcl-brand svg { height: 2.125rem; width: 1.375rem; }
  .tcl-navtoggle { display: inline-flex; }
  .tcl-nav {
    display: none; position: absolute; left: 0; right: 0; top: calc(100% - .25rem);
    flex-direction: column; align-items: stretch; gap: 0; padding: .5rem 1.25rem 1.25rem;
    background: #fff; border-radius: 0 0 1rem 1rem; box-shadow: 0 20px 24px rgb(15 28 63 / .08);
    max-height: calc(100svh - 6rem); overflow-y: auto;
  }
  .tcl-nav--open { display: flex; }
  .tcl-nav a { display: flex; align-items: center; padding: .875rem .5rem; min-height: 2.75rem; font-size: .9375rem; }
  .tcl-nav a.tcl-nav__contact { margin-top: .5rem; margin-left: 0; justify-content: space-between; padding-inline: 1rem; }
  .tcl-hero { min-height: clamp(44rem, 90svh, 56rem); }
  .tcl-hero__inner { padding-top: 21rem; padding-bottom: 9rem; }
  .tcl-hero__sub { font-size: 1.125rem; }
  .tcl-features { gap: 1rem; }
  .tcl-feature { padding: 1.5rem; min-height: 20rem; }
  .tcl-feature h3 { font-size: 1.375rem; }
  .tcl-film-section__intro { grid-template-columns: 1fr; gap: 1.5rem; margin-bottom: 2rem; }
  .tcl-film-section__h, .tcl-film-section__sub { max-width: 36rem; }
  .tcl-faq__inner { grid-template-columns: 1fr; gap: 1rem; }
  .tcl-footer__inner { flex-direction: column; gap: 2rem; }
  .tcl-footer__cols { width: 100%; }
  main.tcl-section { padding-top: 8rem; }
  .tcl-page-hero { padding-top: 8rem; }
  .tcl-page-hero__inner { gap: 2rem; }
  .tcl-page-hero h1 { font-size: 2.75rem; }
  .tcl-page-hero__image, .tcl-page-hero__visual .tcl-figure img { height: 16rem; }
  .tcl-reading-layout { grid-template-columns: 1fr; gap: 2rem; }
  .tcl-page-guide { position: static; }
  .tcl-page-guide > nav { display: flex; overflow-x: auto; gap: .75rem; padding-bottom: .75rem; }
  .tcl-page-guide > nav > a { flex: 0 0 auto; white-space: nowrap; border: 1px solid var(--tcl-border); border-radius: 999px; padding: .625rem 1rem; background: #fff; font-size: .75rem; }
  .tcl-page-guide > nav > a span { display: none; }
  .tcl-page-guide__motto { display: none; }
  .tcl-page-guide__chapters { margin-top: .75rem; }
  .tcl-page-content { padding-block: 3rem 4rem; }
  .tcl-gallery-carousel__heading { gap: 1.5rem; }
}
@media (max-width: 40rem) {
  :root { --tcl-gutter: 1.25rem; }
  .tcl-hero { min-height: 48rem; }
  .tcl-hero__inner { padding-block: 20rem 10rem; }
  .tcl-hero h1 { font-size: clamp(2.75rem, 13vw, 3.75rem); line-height: 1.06; }
  .tcl-hero .tcl-eyebrow { font-size: .5625rem; letter-spacing: .1em; gap: .5rem; }
  .tcl-hero .tcl-eyebrow::before { width: 1.25rem; }
  .tcl-hero__sub { font-size: 1rem; }
  .tcl-hero__actions { gap: .625rem; }
  .tcl-hero__actions .tcl-cta { padding-inline: 1.125rem; font-size: .75rem; }
  .tcl-hero__caption { left: var(--tcl-gutter); right: var(--tcl-gutter); bottom: 5.5rem; max-width: none; font-size: .625rem; }
  .tcl-hero__controls { left: var(--tcl-gutter); right: var(--tcl-gutter); bottom: 1.5rem; gap: 1rem; justify-content: space-between; }
  .tcl-hero__dots { gap: .375rem; }
  .tcl-hero__dot { width: 1.75rem; }
  .tcl-hero__count { padding-inline: .125rem; }
  .tcl-band { padding-block: 2.25rem; }
  .tcl-band__inner { gap: .75rem; }
  .tcl-band strong { font-size: 2.125rem; }
  .tcl-band span { font-size: .625rem; }
  .tcl-intro { padding-block: 2.5rem 4rem; }
  .tcl-intro__p { font-size: 1rem; }
  .tcl-features { grid-template-columns: 1fr; }
  .tcl-feature { min-height: 17rem; }
  .tcl-feature--photo { min-height: 21rem; }
  .tcl-feature h3 { font-size: 1.75rem; max-width: 18rem; }
  .tcl-feature__content { padding: 1.5rem; min-height: 21rem; }
  .tcl-film__triangle { width: 4.5rem; height: 4.5rem; box-shadow: 0 0 0 8px rgb(191 212 255 / .15); }
  .tcl-grid--2, .tcl-grid--3, .tcl-grid--4 { grid-template-columns: 1fr; }
  .tcl-card__img { height: 14rem; }
  .tcl-card__img--tall { height: 24rem; }
  .tcl-card__body { padding: 1.5rem; }
  .tcl-card__provenance { padding-inline: 1.5rem; }
  .tcl-section__sub { font-size: 1rem; margin-bottom: 2rem; }
  .tcl-section--works .tcl-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 1rem; scrollbar-width: thin; scrollbar-color: var(--tcl-primary) #DAE5FC; }
  .tcl-section--works .tcl-card { flex: 0 0 88%; scroll-snap-align: start; }
  .tcl-journey .tcl-card { flex-basis: 85%; }
  .tcl-figure__caption { flex-direction: column; gap: .5rem; }
  .tcl-connect { padding-block: 3.5rem; }
  .tcl-connect__inner { flex-direction: column; align-items: flex-start; gap: 1.75rem; }
  .tcl-footer { padding-top: 3rem; }
  .tcl-footer__cols { grid-template-columns: 1fr 1fr; gap: 2rem 1rem; }
  .tcl-footer__cols > :last-child { grid-column: 1 / -1; }
  .tcl-footer__wordmark { font-size: 14vw; white-space: normal; max-width: 20rem; padding-block: 3rem 2rem; }
  .tcl-footer__bottom { font-size: .625rem; }
  .wp-block-post-featured-image.alignleft { float: none; margin: 0 auto 2rem; }
  .tcl-nav__link[aria-current]::after { width: 1.5rem; left: .5rem; right: auto; bottom: .5rem; }
  .tcl-page-hero { padding-bottom: 2.5rem; }
  .tcl-page-hero__inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .tcl-page-hero h1 { font-size: clamp(2.25rem, 10vw, 3rem); max-width: none; }
  .tcl-page-hero__intro { font-size: 1rem; }
  .tcl-breadcrumb { margin-bottom: 1.75rem; }
  .tcl-page-hero__figure, .tcl-page-hero__visual .tcl-figure, .tcl-page-hero__portrait { rotate: 0deg; }
  .tcl-page-hero__visual--portrait { width: 100%; max-width: 20rem; }
  .tcl-page-hero__portrait > img, .tcl-page-hero__portrait .tcl-portrait--placeholder { height: 24rem; }
  .tcl-prose-panel { padding: 1.5rem; }
  .tcl-prose-panel .wp-block-post-content { font-size: 1rem; line-height: 1.8; }
  .tcl-page-content .wp-block-post-template { grid-template-columns: 1fr; }
  .tcl-directory-nav { flex-direction: column; padding: 1rem 1.25rem; }
  .tcl-directory-nav a { justify-content: space-between; }
  .tcl-gallery-carousel__heading { flex-direction: column; align-items: flex-start; gap: 1.5rem; }
  .tcl-gallery-slide { flex-basis: 86%; }
  .tcl-gallery-slide figcaption { padding: 1.125rem; font-size: .75rem; }
  .tcl-gallery-carousel__track { gap: 1rem; }
  .tcl-gallery-carousel__footer > p { max-width: 8rem; font-size: .6875rem; }
  .tcl-gallery-carousel__controls { gap: .625rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .tcl-hero__photo, .tcl-hero__slide.is-active .tcl-hero__photo { transform: none; animation: none; }
  .tcl-card:hover { translate: none; }
  .tcl-card:hover .tcl-card__img { transform: none; }
  body.tcl-motion-ready .tcl-reveal { opacity: 1; transform: none; }
  .tcl-flip__inner, .tcl-flip.is-flipped .tcl-flip__inner { transform: none; }
  .tcl-flip__back { transform: none; visibility: hidden; }
  .tcl-flip.is-flipped .tcl-flip__front { visibility: hidden; }
  .tcl-flip.is-flipped .tcl-flip__back { visibility: visible; }
}
