@font-face {
    font-family: "JetBrains Mono";
    src: url("../fonts/jetbrains-mono-latin.woff2") format("woff2");
    font-style: normal;
    font-weight: 400 800;
    font-display: swap;
}

:root {
    --finding-canvas: #08090a;
    --finding-ink: #ffffff;
    --finding-muted: rgb(255 255 255 / .6);
    --finding-secondary: rgb(255 255 255 / .75);
    --finding-surface: #101113;
    --finding-border: rgb(255 255 255 / .08);
    --finding-blue: #3d8bff;
    --finding-red: #ff4d4f;
    --finding-yellow: #ffc53d;
    --finding-violet: #c06bff;
    --finding-green: #2ee07a;
    --finding-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

.finding-theme {
    --background-color: var(--finding-canvas);
    --ghost-accent-color: var(--finding-secondary);
    --color-primary-text: var(--finding-ink);
    --color-secondary-text: var(--finding-muted);
    --color-border: var(--finding-border);
    --color-dark-border: #626666;
    --color-lighter-gray: var(--finding-surface);
    --color-light-gray: #282c2c;
    --color-darker-gray: var(--finding-ink);
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
    background: var(--finding-canvas);
    color: var(--finding-ink);
    font-family: var(--font-sans);
    -webkit-font-smoothing: antialiased;
}
.finding-theme [hidden] { display: none !important; }
.finding-theme :is(a, button, summary, input, textarea, select, [tabindex="0"]):focus-visible {
    outline: 2px solid var(--finding-ink);
    outline-offset: 4px;
}
.finding-skip-link {
    position: absolute;
    top: 12px;
    left: 20px;
    z-index: 100;
    padding: 12px 16px;
    background: var(--finding-ink);
    color: var(--finding-canvas);
    transform: translateY(-200%);
}
.finding-skip-link:focus { transform: translateY(0); }
.finding-theme .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.finding-masthead.gh-navigation {
    display: flex;
    align-items: center;
    justify-content: center;
    height: auto;
    padding: 40px 24px;
    border-bottom: 1px solid var(--finding-border);
    background: transparent;
}
.finding-logo { display: block; max-width: 100%; }
.finding-logo img { display: block; width: auto; max-width: 320px; max-height: 48px; }
.finding-topbar {
    position: relative;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 49px;
    padding: 8px 24px;
    border-bottom: 1px solid var(--finding-border);
    background: var(--finding-canvas);
}
.finding-primary-nav { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; min-width: 0; }
.finding-topbar :is(a, button, summary) {
    color: rgb(255 255 255 / .55);
    font: 500 13px/19.5px var(--font-sans);
    letter-spacing: -.01em;
    text-decoration: none;
}
.finding-topbar button { padding: 0; border: 0; background: transparent; text-align: left; cursor: pointer; }
.finding-topbar :is(a, button, summary):hover { color: var(--finding-ink); opacity: 1; }
.finding-primary-nav > :is(a, button) { padding: 6px 10px; overflow-wrap: anywhere; }
.finding-primary-nav > .finding-nav-section--correspondents { position: relative; border-left: 1px solid transparent; }
.finding-menu { position: relative; flex-shrink: 0; margin-left: 8px; padding-left: 8px; border-left: 1px solid transparent; }
.finding-primary-nav > .finding-nav-section--correspondents::before, .finding-menu::before { content: ""; position: absolute; left: -1px; top: calc(50% - 8px); width: 1px; height: 16px; background: var(--finding-border); }
.finding-menu > summary { display: flex; align-items: center; gap: 16px; min-width: 28px; min-height: 28px; padding: 6px; border-radius: 6px; list-style: none; cursor: pointer; }
.finding-menu > summary::-webkit-details-marker { display: none; }
.finding-menu > summary span, .finding-menu-close { display: none; }
.finding-menu[open] .finding-menu-open { display: none; }
.finding-menu[open] .finding-menu-close { display: block; }
.finding-menu > summary:hover { background: rgb(255 255 255 / .04); }
.finding-menu[open] > summary { background: rgb(255 255 255 / .08); color: var(--finding-ink); }
.finding-menu > summary:focus:not(:focus-visible) { outline: none; }
.finding-menu-panel {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 192px;
    max-height: min(70dvh, 560px);
    overflow-y: auto;
    padding: 4px;
    border: 1px solid var(--finding-border);
    border-radius: 10px;
    background: var(--finding-surface);
    box-shadow: 0 20px 25px -5px #0006, 0 8px 10px -6px #0006;
}
.finding-mobile-primary { display: none; }
.finding-overflow-nav { display: flex; flex-direction: column; }
.finding-menu-panel :is(a, button, [aria-disabled]) { display: block; width: 100%; padding: 6px 10px; border-radius: 8px; overflow-wrap: anywhere; font: 500 13px/19.5px var(--font-sans); letter-spacing: -.01em; }
.finding-menu-panel :is(a, button):hover { background: rgb(255 255 255 / .04); }

.finding-shell { flex: 1; width: 100%; max-width: 1400px; margin: auto; padding: 24px 24px 64px; }
.post-template .finding-shell { padding-top: 32px; }
.finding-content { width: 100%; max-width: 640px; margin: auto; min-width: 0; overflow-wrap: anywhere; }
.finding-feed-header { margin-bottom: 24px; }
.finding-feed-header h1:not(.sr-only) { margin: 0; font-size: 30px; font-weight: 600; line-height: 1.2; letter-spacing: -.025em; }
.finding-feed-header p { margin: 12px 0 0; color: var(--finding-muted); font-size: 16px; line-height: 26px; }
.finding-feed-header .finding-eyebrow { margin: 0 0 12px; font: 11px/1.5 var(--finding-mono); text-transform: uppercase; }
.finding-author-website { display: inline-block; margin-top: 12px; color: var(--finding-secondary); font-size: 14px; }
.finding-edition-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; min-height: 44px; font: 700 14px/20px var(--finding-mono); text-transform: uppercase; }
.finding-edition-nav :is(a, button, span) { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
.finding-edition-nav :is(a, button) { color: var(--finding-muted); background: transparent; border: 0; padding: 8px; font: inherit; text-decoration: none; }
.finding-edition-nav a:hover { color: var(--finding-ink); }
.finding-edition-nav :is(span, button:disabled) { color: #555959; }
.finding-edition-nav [data-edition-label] { color: var(--finding-muted); }
.finding-edition-nav [data-edition-today] { font-weight: 800; }
.finding-edition-nav--bottom { margin-top: 32px; }
.finding-card { margin-top: 12px; padding: 20px 0 0; border-top: 1px solid var(--finding-border); }
.finding-stream-heading { display: flex; align-items: center; gap: 8px; margin: 0; padding: 0; border-top: 1px solid var(--finding-border); color: var(--finding-muted); font: 700 11px/16.5px var(--finding-mono); letter-spacing: -.025em; text-transform: uppercase; }
.finding-stream-heading--depth { padding-top: 12px; }
.finding-stream-heading:not(:first-child) { margin-top: 24px; }
.finding-stream-heading::before { content: ""; width: 10px; height: 10px; flex-shrink: 0; border: 1px solid currentColor; border-radius: 50%; }
.finding-stream-heading--depth::before { background: currentColor; }
.finding-card-topic { position: relative; display: inline-flex; align-items: center; gap: 8px; margin-bottom: 12px; color: var(--finding-muted); font: 11px/16.5px var(--finding-mono); letter-spacing: -.025em; text-transform: uppercase; text-decoration: none; }
.finding-card-topic::before { content: ""; width: 11px; height: 11px; flex-shrink: 0; border-radius: 50%; background: var(--finding-topic-color, var(--finding-muted)); }
.finding-card-meta:has([data-new-story]:not([hidden])) .finding-card-topic::after { content: ""; position: absolute; left: 4px; top: calc(50% - 1.5px); width: 3px; height: 3px; border-radius: 50%; background: var(--finding-ink); }
.finding-card-meta:not(:has(.finding-card-topic)) { position: relative; }
.finding-card-meta:not(:has(.finding-card-topic))::before { content: ""; width: 11px; height: 11px; flex-shrink: 0; border-radius: 50%; background: var(--finding-muted); }
.finding-card-meta:not(:has(.finding-card-topic)):has([data-new-story]:not([hidden]))::after { content: ""; position: absolute; left: 4px; top: 4px; width: 3px; height: 3px; border-radius: 50%; background: var(--finding-ink); }
.finding-card-topic[data-section="research"],
.finding-card-topic[data-section="industrial-strategy"] { --finding-topic-color: var(--finding-blue); }
.finding-card-topic[data-section="higher-education"] { --finding-topic-color: var(--finding-red); }
.finding-card-topic[data-section="brussels"] { --finding-topic-color: var(--finding-yellow); }
.finding-card-topic[data-section="leaders"] { --finding-topic-color: var(--finding-violet); }
.finding-card-topic[data-section="correspondents"] { --finding-topic-color: var(--finding-green); }
.finding-card--brief .finding-card-meta { margin-bottom: 8px; }
.finding-card--brief .finding-card-topic::before { width: 10px; height: 10px; background: transparent; border: 1px solid var(--finding-topic-color, var(--finding-muted)); }
.finding-card--brief .finding-card-topic::after { left: 3.5px; }
.finding-card-image { display: block; margin: 0 0 12px; }
.finding-card-image img { width: 100%; height: auto; border: 1px solid var(--finding-border); border-radius: 8px; }
.finding-card-title { margin: 0; color: var(--finding-ink); font-size: 20px; font-weight: 600; line-height: 27.5px; letter-spacing: -.015em; }
.finding-card--brief .finding-card-title { font-size: 16px; line-height: 22px; letter-spacing: -.01em; }
.finding-card-title a { color: inherit; text-decoration: none; }
.finding-card-title a:hover { color: var(--finding-secondary); }
.finding-card-excerpt { margin: 12px 0 0; color: rgb(255 255 255 / .55); font-size: 16px; line-height: 26px; }
.finding-card-body { margin-top: 8px; color: rgb(255 255 255 / .55); font-size: 16px; line-height: 26px; }
.finding-card-body > * + * { margin-top: 16px; }
.finding-feed-empty, [data-edition-status] { color: var(--finding-muted); font-size: 16px; line-height: 26px; }
.finding-content .pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-top: 32px; font: 12px/1.6 var(--finding-mono); color: var(--finding-muted); }

/* Preserve Source's named canvas lines for native galleries and wide/full cards. */
.finding-content :is(.gh-canvas, .kg-width-full.kg-content-wide) {
    grid-template-columns: [full-start wide-start main-start] minmax(0, 1fr) [main-end wide-end full-end];
}
.finding-content .gh-canvas > * { min-width: 0; }
.finding-content .gh-article { margin: 0; }
.finding-content .gh-article-header { margin: 0 0 32px; }
.finding-back { display: block; width: fit-content; margin-bottom: 32px; color: var(--finding-muted); font: 700 11px/16.5px var(--finding-mono); letter-spacing: -.025em; text-transform: uppercase; }
.finding-content .gh-article-tag { margin: 0 0 12px; font-size: 11px; }
.finding-content .gh-article-title { color: var(--finding-ink); font-size: 30px; font-weight: 600; line-height: 33px; letter-spacing: -.02em; text-wrap: balance; }
.finding-content .gh-article-excerpt { color: var(--finding-secondary); font-size: 16px; line-height: 26px; }
.finding-post-tools { display: flex; flex-wrap: wrap; align-items: stretch; justify-content: space-between; gap: 16px; margin-top: 16px; }
.finding-post-metadata, .finding-post-ai { display: flex; flex-direction: column; justify-content: space-between; gap: 12px; min-width: 0; max-width: 100%; padding: 12px; border: 1px solid rgb(255 255 255 / .12); border-radius: 6px; }
.finding-byline { margin: 0; color: rgb(255 255 255 / .9); font: 700 12px/18px var(--finding-mono); letter-spacing: -.025em; text-transform: uppercase; }
.finding-byline a { color: inherit; }
.finding-post-date { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; min-height: 28px; margin: 0; color: rgb(255 255 255 / .45); font: 11px/16.5px var(--finding-mono); letter-spacing: -.025em; text-transform: uppercase; }
.finding-post-ai h2 { display: flex; align-items: center; gap: 6px; margin: 0; color: rgb(255 255 255 / .7); font: 500 11px/16.5px var(--finding-mono); letter-spacing: -.025em; text-transform: uppercase; }
.finding-post-ai svg { width: 14px; height: 14px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2; }
.finding-post-ai > div { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-height: 28px; }
.finding-post-ai button { padding: 4px 10px; border: 1px solid rgb(255 255 255 / .1); border-radius: 6px; background: transparent; color: rgb(255 255 255 / .55); font: 400 12px/18px var(--font-sans); cursor: pointer; }
.finding-post-ai button:hover { background: rgb(255 255 255 / .06); color: var(--finding-ink); }
.finding-content .gh-article-image { margin-top: 24px; }
.finding-content .gh-content { --content-spacing-factor: .57; color: var(--finding-secondary); font-size: 16px; line-height: 26px; letter-spacing: normal; }
[data-finding-post-body] > p + p { margin-top: 20px; }
.finding-content .finding-card-body.gh-content { color: rgb(255 255 255 / .55); }
.finding-content .gh-content :is(h1, h2, h3, h4, h5, h6):not(.kg-card *) { color: var(--finding-ink); }
.finding-content .gh-content .kg-header-card.kg-style-light { color: #15171a; }
.finding-content .gh-content a:not(.kg-card a) { color: var(--finding-secondary); text-underline-offset: 3px; }
.finding-content .gh-content a:not(.kg-card a):hover { color: var(--finding-ink); }
.finding-content .gh-content iframe { max-width: 100%; }
.finding-post-tags { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 40px; padding-top: 16px; border-top: 1px solid rgb(255 255 255 / .15); color: var(--finding-muted); font: 11px/16.5px var(--finding-mono); letter-spacing: -.025em; text-transform: uppercase; }
.finding-post-tags > span { font-weight: 700; }
.finding-post-tags a { color: inherit; }
.finding-back--bottom { margin: 40px 0 0; }
.finding-content .gh-comments { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--finding-border); }
.finding-content .gh-button { background: var(--finding-secondary); color: var(--finding-canvas); }
.finding-content .gh-post-upgrade-cta-content { width: 100%; padding: 32px 24px; border: 1px solid var(--finding-border); border-radius: 8px; background: var(--finding-surface) !important; color: var(--finding-secondary); }
.finding-content .gh-post-upgrade-cta h2 { font-size: 25px; line-height: 1.3; }
.finding-content .gh-post-upgrade-cta a.gh-btn { background: var(--finding-secondary); color: var(--finding-canvas) !important; }
.finding-footer { border-top: 1px solid var(--finding-border); }
.finding-footer > nav, .finding-footer-links { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px 24px; }
.finding-footer > nav { max-width: 1400px; margin: auto; padding: 20px 24px; }
.finding-footer-links { justify-content: flex-start; }
.finding-footer :is(a, [aria-disabled]) { display: inline-flex; align-items: center; border-radius: 6px; color: rgb(255 255 255 / .6); font: 11px/16.5px var(--finding-mono); letter-spacing: -.025em; }
.finding-footer a:hover { color: var(--finding-ink); opacity: 1; }
.finding-menu-panel [aria-disabled], .finding-footer [aria-disabled] { color: rgb(255 255 255 / .35); cursor: not-allowed; }

@media (max-width: 767px) {
    .finding-logo img { max-width: min(240px, 100%); }
    .finding-topbar { justify-content: flex-start; padding: 12px 24px; }
    .finding-primary-nav > :is(a, button) { display: none; }
    .finding-menu { width: 100%; margin: 0; border: 0; }
    .finding-menu::before { display: none; }
    .finding-menu > summary { width: fit-content; min-height: 44px; padding: 0; }
    .finding-menu > summary span { display: inline; color: var(--finding-ink); }
    .finding-menu-panel { right: auto; left: 0; width: min(320px, calc(100vw - 48px)); }
    .finding-mobile-primary { display: flex; flex-direction: column; padding-bottom: 8px; margin-bottom: 8px; border-bottom: 1px solid var(--finding-border); }
    .finding-menu-panel :is(a, button, [aria-disabled]) { display: flex; align-items: center; min-height: 44px; }
    .finding-edition-nav :is(a, button, span) { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
    :is(.finding-back, .finding-card-topic, .finding-card-read, .finding-post-tags a, .finding-footer a, .finding-author-website, .finding-byline a, .pagination a) { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; }
    .finding-card-topic { flex-wrap: wrap; }
    .finding-post-ai button { min-height: 44px; }
    .finding-content .gh-content { overflow-wrap: anywhere; }
}

.finding-card-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.finding-card-meta .finding-card-topic { margin-bottom: 0; }
.finding-card-meta .finding-new-story { margin-left: 0; }
.finding-card-read { display: inline-block; margin-top: 12px; color: var(--finding-muted); font: 11px/1.5 var(--finding-mono); text-transform: uppercase; }
[data-daily-editions] > .finding-edition-nav { margin-top: 32px; }
.finding-card-meta .finding-card-topic ~ .finding-card-topic { display: none; }
.finding-theme :is(.finding-toggle-button, button.kg-toggle-heading) { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 44px; padding: 12px; border: 1px solid var(--finding-muted); border-radius: 4px; background: transparent; color: var(--finding-ink); font: inherit; text-align: left; cursor: pointer; }
.finding-toggle-button > span[aria-hidden] { flex-shrink: 0; }
.finding-image-button { display: block; width: 100%; padding: 0; border: 0; background: transparent; color: inherit; cursor: zoom-in; }
.finding-image-button img { display: block; width: 100%; height: auto; }
.finding-theme .pswp__button:is(.pswp__button--close, .pswp__button--arrow--left, .pswp__button--arrow--right) { display: flex; align-items: center; justify-content: center; background: none; color: #fff; }
.finding-theme .pswp__ui--one-slide :is(.pswp__button--arrow--left, .pswp__button--arrow--right) { display: none; }
.finding-theme .pswp__button:is(.pswp__button--arrow--left, .pswp__button--arrow--right)::before { background: none; }
.finding-lightbox-icon { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; pointer-events: none; }
.finding-theme .pswp__button:focus-visible { outline: 2px solid currentColor; outline-offset: -4px; }
@media (forced-colors: active) {
    .finding-theme .pswp__button:is(.pswp__button--close, .pswp__button--arrow--left, .pswp__button--arrow--right) { background: Canvas; color: ButtonText; border: 1px solid ButtonText; opacity: 1; }
    .pswp__bg { background: Canvas; }
    .pswp__caption { background: Canvas; color: CanvasText; }
}
@media (prefers-reduced-motion: reduce) {
    .pswp, .pswp * { animation: none !important; transition: none !important; }
}
