/* ==========================================================================
   Fieldline 1.2.1 — main stylesheet
   1. Tokens  2. Base  3. Layout  4. Header  5. Buttons, chips, topics
   6. Home    7. Cards 8. Listings 9. Article 10. Research content
   11. Footer 12. Utilities 13. Responsive 14. Print
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
/* Accent colours (--fl-accent*, --fl-second*) are printed inline from the
   Customizer; the values below are fallbacks matching the defaults. */
:root {
	--fl-accent: #4A9FF5;
	--fl-accent-hover: #428EDB;
	--fl-on-accent: #0F2236;
	--fl-accent-text: #2F6DB1;
	--fl-accent-tint: #E9F3FE;
	--fl-second: #6C63E0;
	--fl-second-text: #625DD2;

	--fl-bg: #F7FAFD;
	--fl-surface: #FFFFFF;
	--fl-band: #EEF4FB;
	--fl-ink: #0F2236;
	--fl-text: #1E2F42;
	--fl-muted: #4F5F74;
	--fl-rule: #DCE5EF;
	--fl-rule-strong: #C2D0DF;
	--fl-sun: #FFC94D;
	--fl-mark: #FFEBB0;
	--fl-code-bg: #10233A;
	--fl-code-text: #E6EEF7;
	--fl-footer-bg: #EAF2FB;
	--fl-shadow: 0 1px 2px rgba(15, 34, 54, .05), 0 8px 24px rgba(31, 108, 188, .07);
	--fl-shadow-lg: 0 2px 4px rgba(15, 34, 54, .05), 0 18px 40px rgba(31, 108, 188, .13);
	--topic: var(--fl-accent-text);
	--topic-fill: var(--fl-accent);
	--topic-tint: var(--fl-accent-tint);

	--fl-sans: 'Dubai', 'Segoe UI', 'Avenir Next', system-ui, -apple-system, Roboto, 'Helvetica Neue', Arial, sans-serif;
	--fl-serif: Georgia, 'Iowan Old Style', 'Times New Roman', serif;
	--fl-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	--fl-prose-font: var(--fl-sans);
	--fl-prose-size: 1.25rem;

	--fl-wrap: 1200px;
	--fl-article: 720px;
	--fl-wide: 1080px;
	--fl-gutter: clamp(18px, 4vw, 40px);
	--fl-radius: 12px;
	--fl-radius-sm: 7px;
	--fl-header-h: 76px;
	color-scheme: light;
}

[data-theme="dark"] {
	--fl-accent: #4A9FF5;
	--fl-accent-hover: #65ADF7;
	--fl-on-accent: #0D1724;
	--fl-accent-text: #61ABF6;
	--fl-accent-tint: #1F3E5E;
	--fl-second: #6C63E0;
	--fl-second-text: #A39EEC;
	--fl-bg: #0D1724;
	--fl-surface: #132233;
	--fl-band: #101D2C;
	--fl-ink: #F1F6FB;
	--fl-text: #E2EAF3;
	--fl-muted: #A6B5C7;
	--fl-rule: #233650;
	--fl-rule-strong: #31486A;
	--fl-mark: #5A4A14;
	--fl-code-bg: #0A1320;
	--fl-footer-bg: #0A131E;
	--fl-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .25);
	--fl-shadow-lg: 0 2px 4px rgba(0, 0, 0, .3), 0 18px 40px rgba(0, 0, 0, .4);
	color-scheme: dark;
}


[data-theme="sepia"] {
	--fl-bg: #F4ECDC;
	--fl-surface: #FBF6EC;
	--fl-band: #EDE2CC;
	--fl-ink: #2A1F12;
	--fl-text: #3A2E20;
	--fl-muted: #66553E;
	--fl-rule: #E0D2B6;
	--fl-rule-strong: #CBB894;
	--fl-mark: #F3D98E;
	--fl-code-bg: #2B2418;
	--fl-code-text: #F3EAD8;
	--fl-footer-bg: #EEE4D0;
	--fl-shadow: 0 1px 2px rgba(60, 40, 10, .06), 0 8px 24px rgba(90, 60, 20, .08);
	--fl-shadow-lg: 0 2px 4px rgba(60, 40, 10, .06), 0 18px 40px rgba(90, 60, 20, .14);
}
[data-theme="grey"] {
	--fl-bg: #EEF0F3;
	--fl-surface: #F8F9FA;
	--fl-band: #E5E8EC;
	--fl-ink: #15191E;
	--fl-text: #252A31;
	--fl-muted: #535B66;
	--fl-rule: #D3D8DE;
	--fl-rule-strong: #B9C0C9;
	--fl-code-bg: #1B2129;
	--fl-code-text: #E8ECF0;
	--fl-footer-bg: #E6E9ED;
	--fl-shadow: 0 1px 2px rgba(20, 25, 30, .06), 0 8px 24px rgba(20, 25, 30, .07);
	--fl-shadow-lg: 0 2px 4px rgba(20, 25, 30, .06), 0 18px 40px rgba(20, 25, 30, .13);
}

/* Reader font choice (html[data-font]); code keeps the mono font. */
[data-font="system"] { --fl-sans: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; }
[data-font="literata"] { --fl-sans: 'Literata', Georgia, 'Times New Roman', serif; }
[data-font="georgia"] { --fl-sans: Georgia, 'Iowan Old Style', 'Times New Roman', serif; }
[data-font="atkinson"] { --fl-sans: 'Atkinson Hyperlegible', Verdana, 'Segoe UI', sans-serif; }
[data-font="opendyslexic"] { --fl-sans: 'OpenDyslexic', 'Comic Sans MS', Verdana, sans-serif; }
[data-font] { --fl-prose-font: var(--fl-sans); }
[data-font="opendyslexic"] .fl-prose { font-size: calc(var(--fl-prose-size) * .9); line-height: 1.75; }

/* 2. Base ------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--fl-header-h) + 16px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body {
	margin: 0;
	background: var(--fl-bg);
	color: var(--fl-text);
	font: 400 1.0625rem/1.6 var(--fl-sans);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
a { color: var(--fl-accent-text); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--fl-ink); }
:focus-visible { outline: 2px solid var(--fl-accent-text); outline-offset: 3px; border-radius: 3px; }
h1, h2, h3, h4, h5, h6 { color: var(--fl-ink); font-family: var(--fl-sans); font-weight: 500; line-height: 1.15; letter-spacing: -.015em; margin: 0 0 .5em; text-wrap: balance; }
p { margin: 0 0 1em; }
button, input, select, textarea { font: inherit; color: inherit; }
::selection { background: var(--fl-accent-tint); color: var(--fl-ink); }
.fl-icon { flex: none; vertical-align: middle; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important;
}
.screen-reader-text:focus { clip: auto; clip-path: none; height: auto; width: auto; z-index: 100000; }
.fl-skip { position: absolute; left: 12px; top: -60px; z-index: 1000; background: var(--fl-ink); color: var(--fl-bg); padding: 10px 16px; border-radius: var(--fl-radius-sm); font-weight: 600; text-decoration: none; }
.fl-skip:focus { top: 12px; color: var(--fl-bg); }

/* 3. Layout ---------------------------------------------------------------- */
.fl-wrap { width: 100%; max-width: calc(var(--fl-wrap) + 2 * var(--fl-gutter)); margin-inline: auto; padding-inline: var(--fl-gutter); }
.fl-wrap--article { max-width: calc(var(--fl-article) + 2 * var(--fl-gutter)); }
.fl-wrap--wide { max-width: calc(var(--fl-wide) + 2 * var(--fl-gutter)); }
.fl-section { padding-block: 40px 80px; }
.fl-main { display: block; min-height: 50vh; }

/* Eyebrow: a vertical rule + small caps label */
.fl-eyebrow {
	display: inline-flex; align-items: center; gap: 10px;
	margin: 0 0 14px; padding-left: 12px;
	border-left: 3px solid var(--fl-second-text);
	color: var(--fl-second-text);
	font: 700 .75rem/1.3 var(--fl-sans); letter-spacing: .14em; text-transform: uppercase;
}
.fl-sep { margin-inline: .5em; color: var(--fl-rule-strong); }
.fl-meta { color: var(--fl-muted); font-size: .875rem; margin: 0; }

/* 4. Announcement + header ----------------------------------------------- */
.fl-announce { background: var(--fl-accent-tint); color: var(--fl-ink); border-bottom: 1px solid color-mix(in srgb, var(--fl-accent) 25%, transparent); font: 500 .8125rem/1 var(--fl-sans); letter-spacing: .08em; text-transform: uppercase; }
.fl-announce__inner { display: flex; justify-content: space-between; align-items: center; gap: 24px; min-height: 34px; }
.fl-announce p { margin: 0; display: flex; align-items: center; gap: 10px; min-width: 0; }
.fl-announce__text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fl-announce__text > span, .fl-announce__right { flex: none; }
.fl-announce a { color: inherit; text-decoration: none; }
.fl-announce a:hover { color: var(--fl-accent-text); }
.fl-announce__right { color: var(--fl-muted); }
.fl-pulse { width: 7px; height: 7px; border-radius: 50%; background: var(--fl-accent); box-shadow: 0 0 0 0 rgba(74, 159, 245, .6); animation: fl-pulse 2.4s infinite; }
@keyframes fl-pulse { 0% { box-shadow: 0 0 0 0 rgba(74, 159, 245, .55); } 70% { box-shadow: 0 0 0 8px rgba(74, 159, 245, 0); } 100% { box-shadow: 0 0 0 0 rgba(74, 159, 245, 0); } }

.fl-header { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--fl-surface) 92%, transparent); backdrop-filter: saturate(1.4) blur(10px); -webkit-backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--fl-rule); }
.admin-bar .fl-header { top: 32px; }
.fl-header__inner { display: flex; align-items: center; gap: 24px; min-height: var(--fl-header-h); }

.fl-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--fl-ink); flex: none; }
.fl-brand:hover { color: var(--fl-ink); }
.fl-brand__mark { display: block; flex: none; line-height: 0; }
.fl-brand__icon { display: block; width: 44px; height: 44px; }
.fl-brand__tile { fill: var(--fl-accent); }
.fl-brand__f { stroke: var(--fl-on-accent); }
.fl-brand__dot { fill: var(--fl-second); }
.fl-brand__logo { max-height: 48px; width: auto; }
.fl-brand__text { display: flex; flex-direction: column; line-height: 1.1; }
.fl-brand__name { font: 700 1.375rem/1.1 var(--fl-sans); letter-spacing: .02em; text-transform: uppercase; }
.fl-brand__tagline { font: 500 .75rem/1.3 var(--fl-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--fl-muted); margin-top: 4px; max-width: 220px; }

.fl-nav { flex: 1; display: flex; justify-content: center; }
.fl-nav__list, .fl-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; align-items: center; }
.fl-nav a { position: relative; display: block; padding: 10px 12px; color: var(--fl-text); text-decoration: none; font-weight: 500; font-size: 1.0625rem; }
.fl-nav a::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 2px; height: 2px; background: var(--fl-accent); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.fl-nav a:hover { color: var(--fl-ink); }
.fl-nav a:hover::after, .fl-nav .current-menu-item > a::after, .fl-nav .current-menu-ancestor > a::after, .fl-nav .current-category-ancestor > a::after { transform: scaleX(1); }
.fl-nav .current-menu-item > a { color: var(--fl-ink); }
.fl-nav .sub-menu { display: none; position: absolute; flex-direction: column; align-items: stretch; background: var(--fl-surface); border: 1px solid var(--fl-rule); border-radius: var(--fl-radius-sm); box-shadow: var(--fl-shadow); padding: 6px; min-width: 200px; }
.fl-nav li { position: relative; }
.fl-nav li:hover > .sub-menu, .fl-nav li:focus-within > .sub-menu { display: flex; }

.fl-actions { display: flex; align-items: center; gap: 4px; flex: none; }
.fl-iconbtn { display: inline-grid; place-items: center; width: 40px; height: 40px; border: 0; background: transparent; color: var(--fl-text); border-radius: 50%; cursor: pointer; }
.fl-iconbtn:hover { background: var(--fl-band); color: var(--fl-ink); }
.fl-menu-toggle { display: none; }
.fl-when-open { display: none; }
[aria-expanded="true"] > .fl-when-open { display: inline; }
[aria-expanded="true"] > .fl-when-closed { display: none; }

.fl-progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; }
.fl-progress span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--fl-accent), var(--fl-second)); }

/* Reader settings panel (theme, font, text size) */
.fl-appearance { position: relative; display: none; }
.fl-js .fl-appearance { display: block; }
.fl-appearance > .fl-iconbtn[aria-expanded="true"] { background: var(--fl-accent-tint); color: var(--fl-ink); }
.fl-appearance__panel { position: absolute; right: 0; top: calc(100% + 10px); z-index: 60; width: 344px; max-width: calc(100vw - 20px); max-height: min(80vh, 620px); overflow-y: auto; padding: 16px 16px 14px; background: var(--fl-surface); color: var(--fl-text); border: 1px solid var(--fl-rule); border-radius: var(--fl-radius); box-shadow: var(--fl-shadow-lg); font-family: 'Dubai', 'Segoe UI', system-ui, sans-serif; font-size: 16px; scrollbar-width: thin; }
.fl-appearance__panel[hidden] { display: none; }
.fl-appearance__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.fl-appearance__title { margin: 0; font-weight: 700; font-size: 17px; color: var(--fl-ink); }
.fl-appearance__reset { border: 0; background: none; padding: 4px 2px; font-family: inherit; font-weight: 700; font-size: 13px; line-height: 1.2; color: var(--fl-accent-text); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.fl-appearance__label { display: block; margin: 16px 0 8px; font-family: inherit; font-weight: 700; font-size: 11px; line-height: 1; letter-spacing: .12em; text-transform: uppercase; color: var(--fl-muted); }
.fl-appearance__head + .fl-appearance__label { margin-top: 4px; }
.fl-themes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.fl-theme-opt { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 8px 2px 7px; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--fl-text); font-family: inherit; font-weight: 500; font-size: 13px; line-height: 1.1; cursor: pointer; }
.fl-theme-opt:hover { background: var(--fl-band); }
.fl-theme-opt[aria-checked="true"] { border-color: var(--fl-accent); background: var(--fl-accent-tint); color: var(--fl-ink); font-weight: 700; }
.fl-theme-opt__swatch { position: relative; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(15, 34, 54, .22); overflow: hidden; font: 700 14px/1 'Dubai', 'Segoe UI', sans-serif; }
.fl-theme-opt__swatch span { position: relative; z-index: 1; }
.fl-theme-opt__swatch::after { content: ""; position: absolute; right: 5px; bottom: 5px; width: 8px; height: 8px; border-radius: 50%; background: var(--fl-accent); }
.fl-theme-opt__swatch--auto { background: linear-gradient(135deg, #F7FAFD 0 50%, #0D1724 50% 100%); color: #0F2236; }
.fl-theme-opt__swatch--auto span { padding: 2px 4px 1px; border-radius: 5px; background: rgba(255, 255, 255, .92); }
.fl-theme-opt__swatch--light { background: #F7FAFD; color: #0F2236; }
.fl-theme-opt__swatch--sepia { background: #F4ECDC; color: #2A1F12; }
.fl-theme-opt__swatch--grey { background: #E5E8EC; color: #15191E; }
.fl-theme-opt__swatch--dark { background: #0D1724; color: #F1F6FB; }
[data-theme="dark"] .fl-theme-opt__swatch { border-color: rgba(255, 255, 255, .28); }
.fl-theme-opt[aria-checked="true"] .fl-theme-opt__swatch { box-shadow: 0 0 0 2px var(--fl-surface), 0 0 0 4px var(--fl-accent); }
.fl-select { position: relative; }
.fl-select::after { content: ""; position: absolute; right: 14px; top: 50%; width: 8px; height: 8px; border-right: 2px solid var(--fl-muted); border-bottom: 2px solid var(--fl-muted); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.fl-select select { width: 100%; appearance: none; -webkit-appearance: none; padding: 10px 38px 9px 12px; border: 1px solid var(--fl-rule-strong); border-radius: 8px; background: var(--fl-bg); color: var(--fl-ink); font-family: inherit; font-weight: 500; font-size: 15px; line-height: 1.3; cursor: pointer; }
.fl-font-preview { margin: 8px 0 0; padding: 9px 12px; border-radius: 8px; background: var(--fl-band); color: var(--fl-ink); font-family: var(--fl-sans); font-size: 16px; line-height: 1.4; }
.fl-sizer { display: grid; grid-template-columns: 52px 1fr 52px; align-items: center; gap: 8px; }
.fl-sizer__btn { display: inline-flex; align-items: center; justify-content: center; gap: 1px; height: 42px; border: 1px solid var(--fl-rule-strong); border-radius: 8px; background: var(--fl-bg); color: var(--fl-ink); font-family: inherit; font-weight: 700; font-size: 16px; line-height: 1; cursor: pointer; }
.fl-sizer__btn:hover { border-color: var(--fl-accent); background: var(--fl-accent-tint); }
.fl-sizer__btn[aria-disabled="true"] { opacity: .45; cursor: not-allowed; }
.fl-sizer__a--s { font-size: 13px; }
.fl-sizer__a--l { font-size: 19px; }
.fl-sizer__value { text-align: center; font-weight: 700; font-size: 17px; color: var(--fl-ink); font-variant-numeric: tabular-nums; }
.fl-sizer__track { display: grid; grid-template-columns: repeat(8, 1fr); gap: 4px; margin: 10px 2px 0; }
.fl-sizer__track span { height: 4px; border-radius: 2px; background: var(--fl-rule); }
.fl-sizer__track span.is-on { background: var(--fl-accent); }
.fl-appearance__note { margin: 14px 0 0; padding-top: 10px; border-top: 1px solid var(--fl-rule); font-size: 13px; color: var(--fl-muted); }
.fl-appearance__panel :focus-visible { outline: 2px solid var(--fl-accent-text); outline-offset: 2px; }
@media (max-width: 640px) {
	.fl-appearance__panel { position: fixed; left: 10px; right: 10px; top: calc(var(--fl-header-h) + 8px); width: auto; max-width: none; max-height: calc(100vh - var(--fl-header-h) - 24px); }
	.fl-theme-opt { padding-inline: 0; font-size: 12.5px; }
}

/* Search dialog */
.fl-search { position: fixed; inset: 0; z-index: 100; background: rgba(7, 17, 26, .55); backdrop-filter: blur(4px); display: grid; align-items: start; justify-items: center; padding: 12vh 20px 20px; }
.fl-search[hidden] { display: none; }
.fl-search__box { width: min(720px, 100%); background: var(--fl-surface); border-radius: var(--fl-radius); box-shadow: var(--fl-shadow-lg); padding: 18px; display: flex; gap: 8px; align-items: center; }
.fl-search__box .fl-searchform { flex: 1; }

.fl-searchform { display: flex; align-items: center; gap: 8px; background: var(--fl-surface); border: 1px solid var(--fl-rule-strong); border-radius: 10px; padding: 5px 5px 5px 14px; }
.fl-searchform:focus-within { border-color: var(--fl-accent-text); box-shadow: 0 0 0 3px color-mix(in srgb, var(--fl-accent-text) 20%, transparent); }
.fl-searchform .fl-icon { color: var(--fl-muted); }
.fl-searchform__input { flex: 1; min-width: 0; border: 0; background: transparent; padding: 8px 4px; outline: none; font-size: 1rem; }
.fl-searchform .fl-btn { padding: 9px 16px; }

/* 5. Buttons, chips, topics ---------------------------------------------- */
.fl-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 11px 18px; border-radius: 8px; border: 1px solid transparent; font: 700 1rem/1.1 var(--fl-sans); text-decoration: none; cursor: pointer; transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease; white-space: nowrap; }
.fl-btn--solid { background: var(--fl-accent); color: var(--fl-on-accent); }
.fl-btn--solid:hover { background: var(--fl-accent-hover); color: var(--fl-on-accent); }
.fl-btn--outline { border-color: var(--fl-accent); color: var(--fl-ink); background: var(--fl-surface); }
.fl-btn--outline:hover { background: var(--fl-accent); border-color: var(--fl-accent); color: var(--fl-on-accent); }
.fl-btn--ghost { background: var(--fl-surface); border-color: var(--fl-rule-strong); color: var(--fl-ink); font-size: .875rem; padding: 9px 14px; }
.fl-btn--ghost:hover { border-color: var(--fl-accent-text); color: var(--fl-accent-text); }
.fl-btn--lg { padding: 15px 22px; font-size: 1.0625rem; }
.fl-textlink { display: inline-flex; align-items: center; gap: 8px; color: var(--fl-ink); font-weight: 500; font-size: .9375rem; text-decoration: none; white-space: nowrap; }
.fl-textlink:hover { color: var(--fl-accent-text); }

.fl-topic { display: inline-flex; align-items: center; gap: 7px; color: var(--topic); text-decoration: none; font: 700 .8125rem/1.2 var(--fl-sans); letter-spacing: .08em; text-transform: uppercase; }
a.fl-topic:hover { color: var(--topic); text-decoration: underline; }
.fl-topic__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--topic-fill); flex: none; }

.fl-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.fl-chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1px solid var(--fl-rule-strong); background: var(--fl-surface); border-radius: 999px; color: var(--fl-text); font: 500 .9375rem/1.1 var(--fl-sans); text-decoration: none; cursor: pointer; white-space: nowrap; transition: border-color .15s, background .15s, color .15s; }
.fl-chip:hover { border-color: var(--topic-fill); color: var(--fl-ink); }
.fl-chip[aria-pressed="true"], .fl-chip[aria-current="page"] { background: var(--fl-accent); border-color: var(--fl-accent); color: var(--fl-on-accent); }
.fl-chip[aria-pressed="true"] .fl-topic__dot, .fl-chip[aria-current="page"] .fl-topic__dot { background: var(--fl-on-accent); }
.fl-chip__count { font: 500 .75rem/1 var(--fl-sans); color: var(--fl-muted); background: var(--fl-band); border-radius: 999px; padding: 3px 7px; font-variant-numeric: tabular-nums; }
.fl-chip[aria-pressed="true"] .fl-chip__count, .fl-chip[aria-current="page"] .fl-chip__count { background: color-mix(in srgb, var(--fl-surface) 55%, transparent); color: var(--fl-on-accent); }

/* 6. Home ----------------------------------------------------------------- */
.fl-lead { padding-top: 48px; background: var(--fl-surface); }
.fl-lead__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: center; }
.fl-lead__topic { margin: 0 0 12px; }
.fl-lead__title { font-size: clamp(2.5rem, 1.5rem + 2.9vw, 3.875rem); line-height: 1.04; letter-spacing: -.025em; margin-bottom: 20px; }
.fl-lead__title a { color: inherit; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 2px no-repeat; transition: background-size .3s; }
.fl-lead__title a:hover { background-size: 100% 2px; }
.fl-lead__excerpt { font: 400 1.3125rem/1.55 var(--fl-sans); color: var(--fl-muted); max-width: 34em; margin-bottom: 20px; }
.fl-lead .fl-meta { margin-bottom: 28px; }
.fl-lead__media { position: relative; margin: 0; border-radius: var(--fl-radius); overflow: hidden; background: var(--fl-band); aspect-ratio: 16 / 9.5; box-shadow: var(--fl-shadow); }
.fl-lead__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.fl-lead__media:hover img { transform: scale(1.025); }
.fl-lead__caption { position: absolute; left: 0; right: 0; bottom: 0; display: flex; justify-content: space-between; padding: 40px 18px 14px; background: linear-gradient(transparent, rgba(10, 25, 41, .72)); color: #fff; font: 500 .6875rem/1 var(--fl-sans); letter-spacing: .12em; text-transform: uppercase; pointer-events: none; }

.fl-focus { display: grid; grid-template-columns: auto 1fr 1fr; align-items: stretch; margin-top: 48px; border-top: 1px solid var(--fl-rule); }
.fl-focus__label { display: flex; align-items: center; gap: 12px; margin: 0; padding: 22px 28px 22px 0; color: var(--fl-muted); font: 700 .75rem/1 var(--fl-sans); letter-spacing: .14em; text-transform: uppercase; }
.fl-focus__label .fl-icon { color: var(--fl-second-text); }
.fl-focus__item { display: flex; align-items: center; gap: 14px; padding: 22px 24px; border-left: 1px solid var(--fl-rule); text-decoration: none; color: var(--fl-ink); }
.fl-focus__item .fl-topic { flex: none; font-size: .75rem; }
.fl-focus__title { flex: 1; font-weight: 500; font-size: 1.1875rem; line-height: 1.3; }
.fl-focus__item > .fl-icon { color: var(--fl-muted); transition: transform .2s; }
.fl-focus__item:hover { color: var(--fl-accent-text); }
.fl-focus__item:hover > .fl-icon { transform: translate(2px, -2px); color: var(--fl-accent-text); }

.fl-explore { background: var(--fl-band); padding: 64px 0 80px; }
.fl-sectionhead { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 28px; }
.fl-sectionhead__title { font-size: clamp(1.875rem, 1.4rem + 1.3vw, 2.625rem); margin: 0; letter-spacing: -.02em; }
.fl-filterbar { padding: 18px 0; border-top: 1px solid var(--fl-rule-strong); border-bottom: 1px solid var(--fl-rule); }
.fl-quickfind { display: flex; align-items: center; gap: 8px; padding: 2px 14px; border: 1px solid var(--fl-rule-strong); border-radius: 10px; background: var(--fl-surface); color: var(--fl-muted); flex: none; }
.fl-quickfind input { border: 0; background: transparent; padding: 9px 0; width: 240px; outline: none; color: var(--fl-text); }
.fl-quickfind:focus-within { color: var(--fl-accent-text); border-color: var(--fl-accent-text); }
.fl-filterbar--plain { padding: 0; border-bottom: 0; }
.fl-lead__inner--text { grid-template-columns: minmax(0, 1fr); max-width: calc(860px + 2 * var(--fl-gutter)); }
.fl-resultcount { color: var(--fl-muted); font: 500 .8125rem/1 var(--fl-sans); margin: 20px 0; font-variant-numeric: tabular-nums; }
.fl-empty { padding: 40px; text-align: center; color: var(--fl-muted); border: 1px dashed var(--fl-rule-strong); border-radius: var(--fl-radius); }

.fl-fields { padding: 72px 0; }
.fl-fields__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.fl-fields__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fl-fields__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fl-field a { display: flex; flex-direction: column; height: 100%; padding: 22px; background: var(--fl-surface); border: 1px solid var(--fl-rule); border-top: 3px solid var(--topic-fill); border-radius: var(--fl-radius); text-decoration: none; color: var(--fl-text); transition: transform .2s, box-shadow .2s; }
.fl-field a:hover { transform: translateY(-3px); box-shadow: var(--fl-shadow); }
.fl-field__icon { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; color: var(--topic); background: var(--topic-tint); margin-bottom: 16px; font: 700 1.375rem/1 var(--fl-sans); }
.fl-field__name { font: 500 1.3125rem/1.2 var(--fl-sans); color: var(--fl-ink); margin-bottom: 6px; }
.fl-field__desc { font-size: 1rem; color: var(--fl-muted); line-height: 1.5; flex: 1; }
.fl-field__count { display: flex; justify-content: space-between; align-items: center; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--fl-rule); font: 500 .8125rem/1 var(--fl-sans); color: var(--topic); font-variant-numeric: tabular-nums; }


/* 7. Cards ---------------------------------------------------------------- */
.fl-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 24px; }
.fl-card { position: relative; display: flex; flex-direction: column; background: var(--fl-surface); border: 1px solid var(--fl-rule); border-radius: var(--fl-radius); overflow: hidden; transition: transform .2s ease, box-shadow .2s ease, border-color .2s; }
.fl-card:hover { transform: translateY(-3px); box-shadow: var(--fl-shadow-lg); border-color: var(--fl-rule-strong); }
.fl-card[hidden] { display: none; }
.fl-card__media { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--fl-band); }
.fl-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.fl-card:hover .fl-card__media img { transform: scale(1.04); }
.fl-card__placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: var(--topic); background: repeating-linear-gradient(0deg, transparent 0 23px, color-mix(in srgb, var(--topic-fill) 14%, transparent) 23px 24px), repeating-linear-gradient(90deg, transparent 0 23px, color-mix(in srgb, var(--topic-fill) 14%, transparent) 23px 24px), var(--topic-tint); font: 300 4rem/1 var(--fl-sans); }
.fl-card__badge { position: absolute; top: 12px; right: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px 5px; border-radius: 6px; background: rgba(255, 255, 255, .92); color: #0F2236; box-shadow: 0 1px 3px rgba(15, 34, 54, .15); font: 700 .75rem/1 var(--fl-sans); letter-spacing: .08em; text-transform: uppercase; backdrop-filter: blur(4px); }
.fl-card__badge .fl-icon { width: 14px; height: 14px; }
[data-theme=dark] .fl-card__badge { background: rgba(13, 23, 36, .88); color: #F1F6FB; box-shadow: none; }
.fl-card__body { display: flex; flex-direction: column; flex: 1; padding: 18px 20px 0; }
.fl-card__kicker { display: flex; align-items: center; flex-wrap: wrap; margin: 0 0 8px; color: var(--fl-muted); font-size: .875rem; }
.fl-card__kicker .fl-topic { font-size: .75rem; }
.fl-card__title { font-size: 1.4375rem; line-height: 1.2; margin: 0 0 10px; letter-spacing: -.01em; }
.fl-card__title a { color: var(--fl-ink); text-decoration: none; }
.fl-card__title a::after { content: ""; position: absolute; inset: 0; }
.fl-card__title a:hover { color: var(--fl-accent-text); }
.fl-card__excerpt { color: var(--fl-muted); font-size: 1rem; line-height: 1.5; margin: 0 0 18px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.fl-card__foot { display: flex; justify-content: space-between; align-items: center; margin: auto 0 0; padding: 13px 0 15px; border-top: 1px solid var(--fl-rule); color: var(--fl-muted); font: 500 .875rem/1 var(--fl-sans); }
.fl-card__foot > span:first-child { display: inline-flex; align-items: center; gap: 6px; }
.fl-card__foot .fl-icon { width: 16px; height: 16px; }
.fl-card__go { color: var(--fl-accent-text); transition: transform .2s; }
.fl-card:hover .fl-card__go { transform: translate(2px, -2px); color: var(--fl-accent-text); }
.fl-card--text .fl-card__body { padding-bottom: 18px; }

/* 8. Listings ------------------------------------------------------------- */
.fl-pagehead { background: var(--fl-surface); border-bottom: 1px solid var(--fl-rule); padding: 48px 0 32px; }
.fl-pagehead.fl-cat .fl-eyebrow { border-left-color: var(--topic-fill); color: var(--topic); }
.fl-pagehead__title { display: flex; align-items: center; gap: 16px; font-size: clamp(2rem, 1.4rem + 1.8vw, 3rem); letter-spacing: -.025em; margin-bottom: 10px; }
.fl-pagehead__icon { display: inline-grid; place-items: center; width: 58px; height: 58px; border-radius: 14px; color: var(--topic); background: var(--topic-tint); flex: none; font: 700 1.875rem/1 var(--fl-sans); }
.fl-pagehead__desc { color: var(--fl-muted); font-size: 1.25rem; max-width: 46em; margin: 0 0 24px; }
.fl-pagehead .fl-chips { margin-top: 8px; }

.fl-listing { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 48px; padding-top: 36px; padding-bottom: 80px; align-items: start; }
.fl-listing .fl-filterbar--plain { padding: 0; border-bottom: 0; }
.fl-lead__inner--text { grid-template-columns: minmax(0, 1fr); max-width: calc(860px + 2 * var(--fl-gutter)); }
.fl-resultcount { margin-top: 0; }
.fl-grid--listing { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 20px; }
.fl-grid--listing .fl-card__title { font-size: 1.3125rem; }

/* Listing toolbar + grid/list view switch */
.fl-listbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 20px 0; }
.fl-listbar .fl-resultcount { margin: 0; }
.fl-viewtoggle { display: none; align-items: center; gap: 10px; }
.fl-js .fl-viewtoggle { display: inline-flex; }
.fl-viewtoggle__label { font-size: .8125rem; font-weight: 700; color: var(--fl-muted); }
.fl-viewtoggle__btn { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 13px; border: 1px solid var(--fl-rule-strong); background: var(--fl-surface); color: var(--fl-text); font-weight: 500; font-size: .875rem; cursor: pointer; }
.fl-viewtoggle__btn:first-of-type { border-radius: 8px 0 0 8px; }
.fl-viewtoggle__btn + .fl-viewtoggle__btn { margin-left: -1px; border-radius: 0 8px 8px 0; }
.fl-viewtoggle__btn .fl-icon { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; }
.fl-viewtoggle__btn:hover { color: var(--fl-ink); background: var(--fl-accent-tint); }
.fl-viewtoggle__btn[aria-pressed="true"] { position: relative; background: var(--fl-accent); border-color: var(--fl-accent); color: var(--fl-on-accent); font-weight: 700; }
.fl-viewtoggle__btn:focus-visible { position: relative; z-index: 1; outline: 2px solid var(--fl-accent-text); outline-offset: 2px; }

/* List view: one post per row, image left, text right */
[data-view="list"] .fl-grid--switchable { grid-template-columns: 1fr; gap: 16px; }
[data-view="list"] .fl-grid--switchable .fl-card { display: grid; grid-template-columns: minmax(200px, 300px) minmax(0, 1fr); }
[data-view="list"] .fl-grid--switchable .fl-card:hover { transform: none; }
[data-view="list"] .fl-grid--switchable .fl-card__media { aspect-ratio: auto; min-height: 100%; }
[data-view="list"] .fl-grid--switchable .fl-card__media img { position: absolute; inset: 0; }
[data-view="list"] .fl-grid--switchable .fl-card__badge { display: none; }
[data-view="list"] .fl-grid--switchable .fl-card__body { padding: 18px 24px 0; }
[data-view="list"] .fl-grid--switchable .fl-card__title { font-size: 1.5rem; }
[data-view="list"] .fl-grid--switchable .fl-card__excerpt { -webkit-line-clamp: 2; max-width: 68ch; margin-bottom: 14px; }
[data-view="list"] .fl-grid--switchable .fl-card__foot { padding: 11px 0 13px; }
.fl-searchpanel { margin-bottom: 24px; }

.fl-sidebar { position: sticky; top: calc(var(--fl-header-h) + 24px); display: flex; flex-direction: column; gap: 28px; }
.fl-widget__title { font: 700 .75rem/1 var(--fl-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--fl-muted); margin: 0 0 12px; padding-bottom: 10px; border-bottom: 1px solid var(--fl-rule); }
.fl-widget ul { list-style: none; margin: 0; padding: 0; }
.fl-fieldlist a { position: relative; display: flex; align-items: center; gap: 10px; padding: 7px 10px; margin-left: -10px; border-radius: 8px; color: var(--fl-text); text-decoration: none; font-weight: 500; font-size: 1.0625rem; }
.fl-fieldlist__mono { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 6px; background: var(--topic-tint); color: var(--topic); font: 700 .8125rem/1 var(--fl-sans); flex: none; }
.fl-fieldlist a:hover { background: var(--fl-band); color: var(--fl-ink); }
.fl-fieldlist a[aria-current="page"] { background: var(--topic-tint); color: var(--fl-ink); font-weight: 700; }
.fl-fieldlist a[aria-current="page"]::before { content: ""; position: absolute; left: -12px; width: 7px; height: 7px; background: var(--fl-second-text); transform: rotate(45deg); }
.fl-fieldlist__count { margin-left: auto; font: 500 .75rem/1 var(--fl-sans); color: var(--fl-muted); font-variant-numeric: tabular-nums; }
.fl-sidebar .fl-searchform { padding-left: 10px; }
.fl-sidebar .fl-searchform .fl-btn { padding: 8px 10px; font-size: .8125rem; }
.fl-widget:not(:has(.fl-widget__title)) { padding-top: 0; }

.fl-tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.fl-tags a { display: inline-block; padding: 6px 11px; border-radius: 6px; background: var(--fl-band); color: var(--fl-text); text-decoration: none; font: 500 .8125rem/1.2 var(--fl-sans); }
.fl-tags a:hover { background: var(--fl-accent-tint); color: var(--fl-accent-text); }
.fl-tags--small a { font-size: .75rem; padding: 5px 9px; }

.fl-pagination { margin-top: 48px; }
.fl-pagination ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0; padding: 0; }
.fl-pagination .page-numbers { display: inline-flex; align-items: center; gap: 8px; min-width: 42px; height: 42px; padding: 0 14px; justify-content: center; border: 1px solid var(--fl-rule-strong); border-radius: 8px; background: var(--fl-surface); color: var(--fl-ink); text-decoration: none; font-weight: 500; }
.fl-pagination .page-numbers.current { background: var(--fl-accent); border-color: var(--fl-accent); color: var(--fl-on-accent); }
.fl-pagination a.page-numbers:hover { border-color: var(--fl-accent-text); color: var(--fl-accent-text); }
.fl-pagination .dots { border: 0; background: none; }
.fl-none { padding: 40px; background: var(--fl-surface); border: 1px dashed var(--fl-rule-strong); border-radius: var(--fl-radius); }

.fl-404 { padding: 96px 0; }
.fl-404__inner { display: grid; grid-template-columns: auto 1fr; gap: 56px; align-items: center; }
.fl-404__code { font: 700 clamp(6rem, 4rem + 8vw, 12rem)/1 var(--fl-sans); color: transparent; -webkit-text-stroke: 2px var(--fl-rule-strong); margin: 0; }
.fl-404 .fl-searchform { max-width: 520px; margin-bottom: 20px; }

/* 9. Article -------------------------------------------------------------- */
.fl-article__head { padding: 56px 0 28px; }
.fl-article__kicker { margin-bottom: 18px; border-left-color: var(--topic-fill); }
.fl-article__kicker .fl-topic { font-size: .8125rem; }
.fl-article__title { font-size: clamp(2.375rem, 1.5rem + 2.7vw, 3.625rem); line-height: 1.05; letter-spacing: -.028em; margin: 0; }
.fl-article__hero { margin: 0 auto; }
.fl-article__hero img { width: 100%; height: auto; max-height: 640px; object-fit: cover; border-radius: var(--fl-radius); background: var(--fl-band); box-shadow: var(--fl-shadow); }
.fl-article__hero figcaption { margin-top: 12px; padding-left: 12px; border-left: 2px solid var(--fl-accent); color: var(--fl-muted); font-size: .9375rem; line-height: 1.5; max-width: var(--fl-article); }
.fl-byline { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px; margin: 28px 0 36px; padding: 14px 0; border-top: 1px solid var(--fl-rule); border-bottom: 1px solid var(--fl-rule); color: var(--fl-muted); font-size: .9375rem; }
.fl-byline__author { display: inline-flex; align-items: center; gap: 10px; color: var(--fl-text); }
.fl-byline__author a { color: var(--fl-ink); font-weight: 700; text-decoration: none; }
.fl-byline__avatar { border-radius: 50%; }
.fl-byline__meta { display: inline-flex; align-items: center; flex-wrap: wrap; }
.fl-byline__meta .fl-icon { width: 15px; height: 15px; margin-right: 5px; margin-top: -2px; }

.fl-article__layout { padding-inline: var(--fl-gutter); }
.fl-article__layout > .fl-prose { max-width: var(--fl-article); margin-inline: auto; }
.fl-article__layout.has-toc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, var(--fl-article)) minmax(0, 1fr); gap: 40px; }
.fl-article__layout.has-toc > .fl-prose { grid-column: 2; margin: 0; }
.fl-toc { grid-column: 1; grid-row: 1; justify-self: end; position: sticky; top: calc(var(--fl-header-h) + 32px); align-self: start; width: 100%; max-width: 230px; font-size: .875rem; }
.fl-toc__title { display: flex; align-items: center; gap: 8px; font: 700 .6875rem/1 var(--fl-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--fl-muted); margin-bottom: 12px; }
.fl-toc ol { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--fl-rule); }
.fl-toc a { display: block; padding: 6px 0 6px 14px; margin-left: -1px; border-left: 2px solid transparent; color: var(--fl-muted); text-decoration: none; line-height: 1.35; }
.fl-toc a:hover, .fl-toc a.is-active { color: var(--fl-ink); border-left-color: var(--fl-accent); }

.fl-article__foot { padding-top: 24px; padding-bottom: 64px; }
.fl-article__foot > * + * { margin-top: 28px; }
.fl-cite { padding: 20px 22px; background: var(--fl-band); border-radius: var(--fl-radius); border: 1px solid var(--fl-rule); }
.fl-cite__label { display: flex; align-items: center; gap: 8px; font: 700 .6875rem/1 var(--fl-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--fl-muted); margin: 0 0 10px; }
.fl-cite__text { font: 400 .875rem/1.6 var(--fl-sans); color: var(--fl-text); margin: 0 0 14px; word-break: break-word; }
.fl-author { display: flex; gap: 18px; align-items: flex-start; padding: 22px 0; border-top: 1px solid var(--fl-rule); border-bottom: 1px solid var(--fl-rule); }
.fl-author__avatar { border-radius: 50%; flex: none; }
.fl-author__label { font: 700 .6875rem/1 var(--fl-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--fl-muted); margin: 4px 0 6px; }
.fl-author__name { font: 700 1.125rem/1.2 var(--fl-sans); margin: 0 0 6px; }
.fl-author__name a { color: var(--fl-ink); text-decoration: none; }
.fl-author__bio { color: var(--fl-muted); font-size: .9375rem; margin: 0; }
.fl-postnav .nav-links { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.fl-postnav a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 16px 18px; border: 1px solid var(--fl-rule); border-radius: var(--fl-radius); background: var(--fl-surface); text-decoration: none; }
.fl-postnav a:hover { border-color: var(--fl-accent-text); }
.fl-postnav .nav-next { text-align: right; grid-column: 2; }
.fl-postnav .nav-next a { align-items: flex-end; }
.fl-postnav__dir { display: inline-flex; align-items: center; gap: 6px; font: 700 .6875rem/1 var(--fl-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--fl-muted); }
.fl-postnav__dir .fl-icon { width: 15px; height: 15px; }
.fl-postnav__title { color: var(--fl-ink); font-weight: 600; line-height: 1.3; }
.fl-related { background: var(--fl-band); padding: 64px 0 80px; border-top: 1px solid var(--fl-rule); }
.fl-comments { padding-bottom: 64px; }
.fl-comments__title { font-size: 1.5rem; }
.fl-comments__list { padding-left: 0; list-style: none; }
.fl-comments textarea, .fl-comments input[type="text"], .fl-comments input[type="email"], .fl-comments input[type="url"] { width: 100%; padding: 10px 12px; border: 1px solid var(--fl-rule-strong); border-radius: 8px; background: var(--fl-surface); }

/* 10. Research content (prose) ------------------------------------------- */
.fl-prose { font-family: var(--fl-prose-font); font-size: var(--fl-prose-size); line-height: 1.68; color: var(--fl-text); counter-reset: fl-fig fl-table; font-feature-settings: "kern", "liga", "onum" 0; }
.fl-prose > * { margin-top: 0; margin-bottom: 1.15em; }
.fl-prose > *:last-child { margin-bottom: 0; }
.fl-prose > p:first-of-type { font-size: 1.12em; line-height: 1.62; color: var(--fl-ink); }
.fl-prose > p:first-of-type::first-letter { float: left; font: 700 3.7em/0.8 var(--fl-sans); margin: .1em .1em 0 0; color: var(--fl-second-text); }
.fl-prose .is-style-fl-standfirst { font-size: 1.15em; color: var(--fl-ink); }
.fl-prose h2 { position: relative; font-size: 1.6em; margin: 2em 0 .7em; padding-top: .7em; letter-spacing: -.02em; }
.fl-prose h2::before { content: ""; position: absolute; top: 0; left: 0; width: 48px; height: 3px; border-radius: 2px; background: var(--fl-accent); }
.fl-prose h3 { font-size: 1.22em; margin: 1.7em 0 .5em; }
.fl-prose h4 { font-size: 1em; margin: 1.5em 0 .4em; text-transform: uppercase; letter-spacing: .08em; font-size: .85em; color: var(--fl-muted); }
.fl-prose a { color: var(--fl-accent-text); text-decoration-color: color-mix(in srgb, var(--fl-accent-text) 45%, transparent); }
.fl-prose a:hover { text-decoration-color: currentColor; }
.fl-prose strong { color: var(--fl-ink); font-weight: 700; }
.fl-prose ul, .fl-prose ol { padding-left: 1.3em; }
.fl-prose li { margin-bottom: .4em; }
.fl-prose li::marker { color: var(--fl-accent); }
.fl-prose mark { background: var(--fl-mark); color: inherit; padding: 0 .15em; border-radius: 2px; }
.fl-prose abbr[title] { text-decoration: underline dotted; cursor: help; }
.fl-prose sup, .fl-prose sub { font-size: .7em; line-height: 0; }
.fl-prose kbd { font: 500 .8em var(--fl-mono); padding: .1em .4em; border: 1px solid var(--fl-rule-strong); border-bottom-width: 2px; border-radius: 4px; background: var(--fl-surface); }

/* Wide / full alignment */
.fl-prose > .alignwide { width: min(var(--fl-wide), calc(100vw - 2 * var(--fl-gutter))); max-width: none; margin-left: calc(50% - min(var(--fl-wide), calc(100vw - 2 * var(--fl-gutter))) / 2); }
.fl-prose > .alignfull { width: 100vw; max-width: none; margin-left: calc(50% - 50vw); }
.has-toc .fl-prose > .alignwide, .has-toc .fl-prose > .alignfull { width: auto; margin-left: 0; }
.fl-prose .alignleft { float: left; margin: .3em 1.5em 1em 0; max-width: 50%; }
.fl-prose .alignright { float: right; margin: .3em 0 1em 1.5em; max-width: 50%; }

/* Figures with numbered captions */
.fl-prose figure { margin-inline: 0; }
.fl-prose .wp-block-image img { border-radius: var(--fl-radius-sm); }
.fl-prose .wp-block-image.is-style-fl-framed img, .fl-prose .wp-block-image.has-border img { border: 1px solid var(--fl-rule); }
.fl-prose figcaption, .fl-prose .wp-element-caption { margin-top: .8em; font: 400 .95rem/1.5 var(--fl-sans); color: var(--fl-muted); text-align: left; }
.fl-prose .wp-block-image:has(figcaption) { counter-increment: fl-fig; }
.fl-prose .wp-block-image figcaption::before { content: "Figure " counter(fl-fig) ". "; font-weight: 600; color: var(--fl-ink); }
.fl-prose .wp-block-table:has(figcaption) { counter-increment: fl-table; }
.fl-prose .wp-block-table figcaption::before { content: "Table " counter(fl-table) ". "; font-weight: 600; color: var(--fl-ink); }

/* Tables */
.fl-prose .wp-block-table { overflow-x: auto; }
.fl-prose table { width: 100%; border-collapse: collapse; font: 400 .95rem/1.45 var(--fl-sans); font-variant-numeric: tabular-nums lining-nums; background: var(--fl-surface); }
.fl-prose .wp-block-table table { border: 0; }
.fl-prose th, .fl-prose td { padding: .7em .9em; border: 0; border-bottom: 1px solid var(--fl-rule); text-align: left; vertical-align: top; }
.fl-prose thead th, .fl-prose .wp-block-table thead { border-bottom: 2px solid var(--fl-ink); }
.fl-prose th { font-weight: 700; color: var(--fl-ink); font-size: .9rem; letter-spacing: .01em; }
.fl-prose tbody tr:nth-child(even) td { background: color-mix(in srgb, var(--fl-band) 55%, transparent); }
.fl-prose td.has-text-align-right, .fl-prose th.has-text-align-right { text-align: right; }
.fl-prose .wp-block-table figcaption { margin-top: .7em; }
.fl-prose .wp-block-table.is-style-fl-data td { font-family: var(--fl-sans); font-size: .85rem; font-variant-numeric: tabular-nums; }
.fl-prose .wp-block-table.is-style-stripes tbody tr:nth-child(odd) td { background: var(--fl-band); }

/* Code */
.fl-prose code { font: 500 .8em/1.5 var(--fl-mono); background: var(--fl-accent-tint); color: var(--fl-ink); padding: .12em .38em; border-radius: 4px; }
.fl-prose pre, .fl-prose .wp-block-code { position: relative; font: 400 .875rem/1.65 var(--fl-mono); background: var(--fl-code-bg); color: var(--fl-code-text); padding: 1.2em 1.4em; border-radius: var(--fl-radius-sm); overflow-x: auto; tab-size: 4; border: 1px solid var(--fl-rule); }
.fl-prose pre code { background: none; color: inherit; padding: 0; font-size: inherit; font-weight: 400; white-space: pre; overflow-wrap: normal; }
.fl-prose pre[data-lang]::before, .fl-prose .wp-block-code[data-lang]::before { content: attr(data-lang); position: absolute; top: .6em; right: .9em; font: 700 .65rem/1 var(--fl-sans); letter-spacing: .12em; text-transform: uppercase; color: #8CC4FF; opacity: .9; }

/* Quotes */
.fl-prose blockquote, .fl-prose .wp-block-quote { margin-inline: 0; padding: .3em 0 .3em 1.3em; border-left: 3px solid var(--fl-accent); font-size: 1.08em; color: var(--fl-ink); }
.fl-prose blockquote p { margin-bottom: .6em; }
.fl-prose blockquote cite, .fl-prose .wp-block-quote cite { display: block; margin-top: .5em; font: 500 .8rem/1.4 var(--fl-sans); font-style: normal; color: var(--fl-muted); letter-spacing: .04em; }
.fl-prose blockquote cite::before { content: "— "; }
.fl-prose .wp-block-pullquote, .fl-prose .wp-block-quote.is-style-fl-pull { border: 0; border-top: 2px solid var(--fl-ink); border-bottom: 1px solid var(--fl-rule); padding: 1.4em 0; margin-block: 2em; text-align: left; font: 500 1.45em/1.3 var(--fl-sans); font-style: normal; letter-spacing: -.01em; }
.fl-prose .wp-block-pullquote blockquote { border: 0; padding: 0; font: inherit; }
.fl-prose .wp-block-quote.is-style-fl-pull::before, .fl-prose .wp-block-pullquote::before { content: "“"; display: block; font: 700 3em/0.6 var(--fl-sans); color: var(--fl-accent); margin-bottom: .1em; }

/* Callouts */
.fl-prose .is-style-fl-key-findings, .fl-prose .is-style-fl-callout { padding: 1.2em 1.4em; border-radius: var(--fl-radius); font-family: var(--fl-sans); font-size: .9em; line-height: 1.6; }
.fl-prose .is-style-fl-key-findings { background: var(--fl-accent-tint); border-left: 4px solid var(--fl-accent); }
.fl-prose .is-style-fl-callout { background: var(--fl-band); border-left: 4px solid var(--fl-second); }
.fl-prose .is-style-fl-key-findings > :first-child, .fl-prose .is-style-fl-callout > :first-child { margin-top: 0; }
.fl-prose .is-style-fl-key-findings > :last-child, .fl-prose .is-style-fl-callout > :last-child { margin-bottom: 0; }
.fl-prose .is-style-fl-key-findings h3, .fl-prose .is-style-fl-callout h3 { font-size: .78em; letter-spacing: .14em; text-transform: uppercase; color: var(--fl-accent-text); margin: 0 0 .7em; padding: 0; }
.fl-prose .is-style-fl-callout h3 { color: var(--fl-second-text); }
.fl-prose .is-style-fl-key-findings h3::before, .fl-prose .is-style-fl-callout h3::before { display: none; }
.fl-prose .is-style-fl-key-findings ul { margin: 0; }

/* Maths (KaTeX) */
.fl-prose .katex { font-size: 1.08em; }
.fl-prose .katex-display, .fl-prose .fl-equation { margin: 1.4em 0; padding: .9em 1em; overflow-x: auto; overflow-y: hidden; background: var(--fl-surface); border: 1px solid var(--fl-rule); border-radius: var(--fl-radius-sm); }
.fl-prose .fl-equation .katex-display { margin: 0; padding: 0; border: 0; background: none; }

/* Footnotes (core footnotes block) & references */
.fl-prose sup.fn a, .fl-prose sup a[href^="#"] { font: 700 .75em/0 var(--fl-sans); text-decoration: none; padding: 0 .15em; color: var(--fl-accent-text); }
.fl-prose sup.fn a::before { content: "["; } .fl-prose sup.fn a::after { content: "]"; }
.fl-prose .wp-block-footnotes { margin-top: 3em; padding: 1.4em 0 0 1.2em; border-top: 1px solid var(--fl-rule-strong); font: 400 .85em/1.55 var(--fl-sans); color: var(--fl-muted); position: relative; }
.fl-prose .wp-block-footnotes::before { content: "Notes"; position: absolute; top: -.65em; left: 0; padding-right: .8em; background: var(--fl-bg); font: 700 .75rem/1 var(--fl-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--fl-ink); }
.fl-prose .wp-block-footnotes li { margin-bottom: .5em; }
.fl-prose .wp-block-footnotes li:target { background: var(--fl-mark); border-radius: 4px; }
.fl-prose .is-style-fl-references { list-style: none; counter-reset: fl-ref; padding: 0; font: 400 .88em/1.55 var(--fl-sans); color: var(--fl-muted); }
.fl-prose .is-style-fl-references li { counter-increment: fl-ref; position: relative; padding-left: 2.6em; margin-bottom: .7em; }
.fl-prose .is-style-fl-references li::before { content: "[" counter(fl-ref) "]"; position: absolute; left: 0; top: 0; font: 700 .95em/1.6 var(--fl-sans); color: var(--fl-accent-text); font-variant-numeric: tabular-nums; }
.fl-prose .is-style-fl-references em { color: var(--fl-text); }
.fl-prose .wp-block-separator, .fl-prose hr { border: 0; height: 1px; background: var(--fl-rule-strong); margin: 2.4em auto; max-width: 120px; }
.fl-prose .wp-block-separator.is-style-wide { max-width: none; }
.fl-prose .wp-block-separator.is-style-dots { background: none; height: auto; max-width: none; }
.fl-prose .wp-block-embed { margin-block: 1.6em; }
.fl-prose .wp-block-button__link { background: var(--fl-accent); color: var(--fl-on-accent); border-radius: 8px; font: 700 .9rem/1.1 var(--fl-sans); padding: .85em 1.3em; text-decoration: none; }
.fl-prose .wp-block-details { border: 1px solid var(--fl-rule); border-radius: var(--fl-radius-sm); padding: .8em 1.1em; font-family: var(--fl-sans); font-size: .92em; }
.fl-prose .wp-block-details summary { cursor: pointer; font-weight: 600; color: var(--fl-ink); }
.fl-prose--full { max-width: none; }
.fl-page .fl-prose > p:first-of-type { font-size: 1em; color: var(--fl-text); }
.fl-page .fl-prose > p:first-of-type::first-letter { float: none; font: inherit; margin: 0; color: inherit; }
.fl-page .fl-article__layout { padding-bottom: 80px; }

/* 11. Footer -------------------------------------------------------------- */
.fl-footer { position: relative; background: var(--fl-footer-bg); color: var(--fl-text); border-top: 1px solid var(--fl-rule); padding: 64px 0 0; font-size: 1rem; }
.fl-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1.3fr 1fr; gap: 40px; padding-bottom: 48px; }
.fl-footer__grid--3 { grid-template-columns: 2fr 1.3fr 1fr; }
.fl-footer__about { margin: 18px 0; max-width: 34ch; line-height: 1.6; color: var(--fl-muted); }
.fl-footer__heading, .fl-footer .fl-widget__title { font: 700 .8125rem/1 var(--fl-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--fl-accent-text); margin: 8px 0 18px; padding: 0; border: 0; }
.fl-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.fl-footer a { color: var(--fl-text); text-decoration: none; }
.fl-footer a:hover { color: var(--fl-accent-text); text-decoration: underline; }
.fl-footer .fl-topic { font: 400 1rem/1.3 var(--fl-sans); letter-spacing: 0; text-transform: none; color: var(--fl-text); }
.fl-footer__bar { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 0; border-top: 1px solid var(--fl-rule-strong); font-size: .875rem; color: var(--fl-muted); }
.fl-footer__bar p { margin: 0; }
.fl-footer__links { display: flex !important; gap: 20px !important; }
.fl-totop { position: fixed; right: 22px; bottom: 22px; z-index: 40; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--fl-accent); color: var(--fl-on-accent) !important; box-shadow: var(--fl-shadow-lg); opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .2s, transform .2s, visibility .2s; }
.fl-totop.is-visible { opacity: 1; visibility: visible; transform: none; }
.fl-totop:hover { background: var(--fl-accent-hover); text-decoration: none !important; }

/* Core block widgets placed in the theme's widget areas */
.fl-widget .wp-block-heading, .fl-afterpost .wp-block-heading { font: 700 .6875rem/1 var(--fl-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--fl-muted); margin: 0 0 12px; padding-bottom: 10px; border-bottom: 1px solid var(--fl-rule); }
.fl-widget .wp-block-latest-posts a, .fl-widget .wp-block-archives a, .fl-widget .wp-block-categories a, .fl-widget .wp-block-page-list a, .fl-afterpost a { color: var(--fl-text); text-decoration: none; }
.fl-widget .wp-block-latest-posts li, .fl-widget .wp-block-archives li, .fl-widget .wp-block-categories li { padding: 7px 0; border-bottom: 1px solid var(--fl-rule); font-size: .9375rem; line-height: 1.4; }
.fl-widget .wp-block-latest-posts a:hover, .fl-widget .wp-block-archives a:hover, .fl-widget .wp-block-categories a:hover, .fl-afterpost a:hover { color: var(--fl-accent-text); }
.fl-widget .wp-block-search__label { font: 700 .6875rem/1 var(--fl-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--fl-muted); display: block; margin-bottom: 10px; }
.fl-widget .wp-block-search__inside-wrapper { display: flex; gap: 6px; }
.fl-widget .wp-block-search__input { flex: 1; min-width: 0; padding: 9px 12px; border: 1px solid var(--fl-rule-strong); border-radius: 8px; background: var(--fl-surface); }
.fl-widget .wp-block-search__button { margin: 0; padding: 9px 14px; border: 0; border-radius: 8px; background: var(--fl-accent-text); color: var(--fl-on-accent); font-weight: 600; cursor: pointer; }
.fl-afterpost { display: grid; gap: 24px; }
.fl-afterpost ul { list-style: none; padding: 0; margin: 0; }
.fl-footer .wp-block-heading { font: 700 .8125rem/1 var(--fl-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--fl-accent-text); margin: 8px 0 18px; }

/* 12. Utilities / WordPress core classes ---------------------------------- */
.wp-caption { max-width: 100%; }
.wp-caption-text, .gallery-caption { font-size: .875rem; color: var(--fl-muted); }
.bypostauthor { }
.fl-pagelinks { font-family: var(--fl-sans); margin-top: 2em; }

/* 13. Responsive ---------------------------------------------------------- */
@media (max-width: 1240px) {
	.fl-grid--listing { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
	.fl-fields__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fl-footer__grid { grid-template-columns: 1fr 1fr; }
	.fl-article__layout.has-toc { display: block; }
	.fl-toc { position: static; max-width: var(--fl-article); margin: 0 auto 32px; padding: 16px 18px; border: 1px solid var(--fl-rule); border-radius: var(--fl-radius); background: var(--fl-surface); }
}
@media (max-width: 980px) {
	:root { --fl-header-h: 64px; }
	.fl-menu-toggle { display: inline-grid; }
	.fl-nav { position: absolute; top: 100%; left: 0; right: 0; display: none; background: var(--fl-surface); border-bottom: 1px solid var(--fl-rule); box-shadow: var(--fl-shadow-lg); padding: 8px var(--fl-gutter) 16px; }
	.fl-nav.is-open { display: block; }
	.fl-nav__list, .fl-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
	.fl-nav a { padding: 14px 4px; border-bottom: 1px solid var(--fl-rule); font-size: 1.0625rem; }
	.fl-nav a::after { display: none; }
	.fl-nav .current-menu-item > a { color: var(--fl-accent-text); }
	.fl-nav .sub-menu { position: static; display: flex; box-shadow: none; border: 0; padding: 0 0 0 16px; }
	.fl-header__inner { justify-content: space-between; }
	.fl-lead__inner { grid-template-columns: 1fr; gap: 28px; }
	.fl-lead__media { order: -1; }
	.fl-focus { grid-template-columns: 1fr; margin-top: 32px; }
	.fl-focus__label { padding: 18px 0 6px; }
	.fl-focus__item { border-left: 0; border-top: 1px solid var(--fl-rule); padding: 16px 0; }
	.fl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fl-listing { grid-template-columns: 1fr; gap: 28px; }
	.fl-sidebar { position: static; order: 2; }
	.fl-404__inner { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 700px) {
	.fl-announce .fl-announce__right { display: none; }
	.fl-announce__text { display: block !important; }
	.fl-pulse { display: inline-block; margin-right: 8px; vertical-align: 1px; }
	.fl-announce__inner { min-height: 32px; font-size: .6875rem; }
	.fl-brand__tagline { display: none; }
	.fl-brand__icon { width: 38px; height: 38px; }
	.fl-brand__name { font-size: 1.125rem; }
	.fl-iconbtn { width: 38px; height: 38px; }
	.fl-actions { gap: 0; }
	.fl-lead { padding-top: 20px; }
	.fl-lead__inner { padding-inline: 0; }
	.fl-lead__inner > .fl-lead__copy { padding-inline: var(--fl-gutter); }
	.fl-lead__media { border-radius: 0; box-shadow: none; }
	.fl-lead__excerpt { font-size: 1.0625rem; }
	.fl-lead .fl-btn--lg { width: 100%; }
	.fl-sectionhead { flex-direction: column; align-items: flex-start; gap: 12px; }
	.fl-filterbar .fl-chips { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--fl-gutter)); padding: 2px var(--fl-gutter) 6px; scrollbar-width: none; }
	.fl-filterbar .fl-chips::-webkit-scrollbar { display: none; }
	.fl-quickfind { width: 100%; }
	.fl-quickfind input { width: 100%; }
	.fl-grid, .fl-grid--listing { grid-template-columns: 1fr; }
	.fl-explore, .fl-related { padding: 44px 0 56px; }
	.fl-fields { padding: 48px 0; }
	.fl-fields__grid { grid-template-columns: 1fr; gap: 12px; }
	.fl-field a { padding: 18px; }
	.fl-article__head { padding: 32px 0 22px; }
	.fl-article__hero { padding-inline: 0; }
	.fl-article__hero img { border-radius: 0; box-shadow: none; }
	.fl-article__hero figcaption { margin-inline: var(--fl-gutter); }
	.fl-byline { flex-direction: column; align-items: flex-start; gap: 8px; }
	.fl-prose { font-size: calc(var(--fl-prose-size) - .0625rem); }
	.fl-prose > .alignwide { width: 100%; margin-left: 0; }
	.fl-prose .alignleft, .fl-prose .alignright { float: none; margin: 0 0 1em; max-width: 100%; }
	.fl-postnav .nav-links { grid-template-columns: 1fr; }
	.fl-postnav .nav-next { grid-column: auto; }
	.fl-footer__grid { grid-template-columns: 1fr; gap: 32px; }
	.fl-footer__bar { flex-direction: column; align-items: flex-start; }
	.fl-pagehead { padding: 32px 0 24px; }
	.fl-pagehead .fl-chips { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--fl-gutter)); padding: 2px var(--fl-gutter) 6px; scrollbar-width: none; }
}
@media (max-width: 700px) {
	/* Compact list rows on phones: small square thumbnail, title, date and reading time. */
	[data-view="list"] .fl-grid--switchable { gap: 10px; }
	[data-view="list"] .fl-grid--switchable .fl-card { grid-template-columns: 96px minmax(0, 1fr); align-items: stretch; }
	[data-view="list"] .fl-grid--switchable .fl-card__media { aspect-ratio: auto; width: 100%; min-height: 96px; }
	[data-view="list"] .fl-grid--switchable .fl-card__body { padding: 12px 14px 0; }
	[data-view="list"] .fl-grid--switchable .fl-card__kicker { font-size: .8125rem; margin-bottom: 4px; }
	[data-view="list"] .fl-grid--switchable .fl-card__title { font-size: 1.125rem; margin-bottom: 6px; }
	[data-view="list"] .fl-grid--switchable .fl-card__excerpt { display: none; }
	[data-view="list"] .fl-grid--switchable .fl-card__foot { border-top: 0; padding: 0 0 12px; font-size: .8125rem; }
	.fl-listbar { margin: 16px 0; }
	.fl-viewtoggle__label { display: none; }
	.fl-viewtoggle__btn { padding: 0 11px; }
}
@media (max-width: 782px) { .admin-bar .fl-header { top: 46px; } }

/* 14. Print --------------------------------------------------------------- */
@media print {
	.fl-announce, .fl-header, .fl-footer, .fl-related, .fl-postnav, .fl-cite button, .fl-toc, .fl-totop, .fl-search, .fl-comments { display: none !important; }
	body { background: #fff; color: #000; }
	.fl-prose { font-size: 11pt; }
	.fl-prose a { color: #000; }
	.fl-prose a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; }
	.fl-prose pre { background: #f4f4f4; color: #000; }
}
.fl-sidebar .fl-searchform > .fl-icon { display: none; }
