/* Shared UI rules: 8px spacing, accessible targets, stable layouts, white surfaces. */
:root { --ui-focus:#2345cf; --ui-border:#d9dee8; }
.ui-language-switch { display:inline-flex; align-items:center; justify-content:center; flex:none; min-width:52px; height:44px; padding:0 12px; border:1px solid var(--ui-border); border-radius:999px; background:#fff; color:#15213a; text-decoration:none; font:600 13px/1 "Work Sans",sans-serif; white-space:nowrap; }
.ui-language-switch:hover { background:#f1f4f9; border-color:#a8b5d3; }
.ui-language-note { margin:24px 0 0; font-size:14px; line-height:1.6; color:#526079; }
html { scrollbar-gutter:stable; }
html:has(.ba-main) { scroll-padding-top:16px; }
body.theme-light { --be-muted:#526079; --be-line:rgba(15,23,42,.14); }
body:has(dialog[open]) { overflow:hidden; }
button, input, summary, a { touch-action:manipulation; }
:where(a,button,input,summary):focus-visible { outline:3px solid var(--ui-focus); outline-offset:4px; }
.ui-visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.ui-skip-link { position:fixed; top:12px; left:16px; z-index:5000; padding:12px 20px; border-radius:10px; background:#15213a; color:#fff; transform:translateY(-160%); }
.ui-skip-link:focus { transform:none; }
.site-header,.category-header,.search-header { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:24px; }
.header-actions,.top-actions { flex-wrap:nowrap; }
.header-search,.search-box { width:180px; min-width:180px; flex:none; }
.header-search:focus-within,.search-box:focus-within { min-width:180px; }
.header-search input,.search-box input { min-width:0; width:100%; }
.nav-links a,.top-nav a,.auth-link,.newsletter-button,.view-all-button,.load-more { min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
.theme-toggle,.mode-toggle,.search-submit { min-width:44px; min-height:44px; flex:none; }
.theme-toggle-thumb svg,.mode-thumb svg { width:15px; height:15px; }
.theme-toggle-thumb,.mode-thumb { display:grid; place-items:center; }
.brand-text small,.brand-copy small { font-size:11px; letter-spacing:0; }
.publication-intro { gap:48px; padding-top:80px; }
.publication-intro h1 { font-size:clamp(44px,6vw,88px); line-height:1.04; letter-spacing:-.055em; }
.page-intro h1,.search-hero h1 { font-size:clamp(38px,5vw,64px); line-height:1.08; letter-spacing:-.045em; overflow-wrap:anywhere; }
.category-main,.search-main { padding-top:48px; }
.page-intro,.search-hero { padding-bottom:40px; }
.search-hero { row-gap:24px; }
.search-kicker { width:fit-content; padding:8px 12px; border-radius:8px; }
.topic-rail { gap:8px; padding:4px 2px 24px; scroll-padding-inline:16px; }
.topic-rail a { display:inline-flex; align-items:center; min-height:44px; }
.hero-media { grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); min-height:440px; }
.hero-media > img { min-height:424px; }
.hero-cover-link { display:block; overflow:hidden; border-radius:23px; }
.hero-cover-link img { display:block; width:100%; height:100%; min-height:424px; object-fit:cover; }
.hero-card { min-width:0; padding:40px; }
.hero-card h2 { font-size:clamp(30px,3.2vw,46px); line-height:1.15; letter-spacing:-.04em; overflow-wrap:anywhere; }
.hero-card::before { flex:none; margin-bottom:24px; }
.hero-card h2 a,.post-card h3 a,.category-card h3 a,.result-card h3 a { color:inherit; text-decoration:none; }
.hero-badge:has(>a) { background:transparent !important; padding:0; }
.hero-card h2 a::after,.post-card h3 a::after,.category-card h3 a::after,.result-card h3 a::after { position:absolute; inset:0; content:""; border-radius:inherit; }
.hero-card .hero-badge,.post-topic,.category-topic,.result-topic { position:relative; z-index:2; }
.post-card::after,.category-card::after,.result-card::after { pointer-events:none; }
.post-card:focus-within,.category-card:focus-within,.result-card:focus-within { outline:3px solid var(--ui-focus); outline-offset:3px; }
.post-card h3 a:focus-visible,.category-card h3 a:focus-visible,.result-card h3 a:focus-visible { outline:none; }
.post-card:hover,.category-card:hover,.result-card:hover,.related-card:hover { transform:none; border-color:#91a0dc; box-shadow:0 12px 32px #14234412; }
.post-card:hover .post-image,.category-card:hover .card-image,.related-card:hover .related-image { transform:none; }
.post-card h3,.category-card h3,.result-card h3 { line-height:1.35; letter-spacing:-.025em; overflow-wrap:anywhere; }
.post-copy > p,.result-card > p { font-size:15px; line-height:1.7; }
.post-meta,.card-meta,.result-meta { gap:12px; flex-wrap:wrap; font-size:12px; line-height:1.6; }
.post-meta > div,.card-meta > div,.result-meta > div { min-width:0; }
.post-grid,.category-grid,.results-grid { gap:24px; }
.post-card,.category-card,.result-card { min-width:0; }
.view-all-button:disabled,.load-more:disabled { cursor:wait; opacity:.65; }
.load-more-wrap[hidden],.view-all-wrap[hidden],[hidden].ui-results-more { display:none !important; }
.result-empty,.empty-state { color:var(--be-muted); line-height:1.7; }
.result-empty a,.empty-state a { color:#2345cf; text-decoration:underline; text-underline-offset:3px; }
.search-page-form { display:flex; gap:12px; width:100%; max-width:720px; margin:0 8px 16px; }
.search-page-form input { width:100%; min-width:0; min-height:52px; padding:12px 16px; border:1px solid var(--ui-border); border-radius:12px; background:#fff; color:#15213a; font:inherit; }
.search-page-form button { padding:12px 24px; min-height:52px; border:0; border-radius:12px; background:#3157ff; color:#fff; font-weight:600; cursor:pointer; }
.ui-results-more { margin:32px auto 0; display:block; }
.ui-autoload-button { display:none !important; }
.ui-autoload-status { display:flex; justify-content:center; align-items:center; gap:12px; min-height:64px; margin:24px auto; color:var(--be-muted,#526079); font-size:14px; }
.ui-autoload-status[hidden] { display:none; }
.ui-autoload-status.is-loading::before { content:""; width:18px; height:18px; border:2px solid #cbd3e2; border-top-color:#3157ff; border-radius:50%; animation:ui-spin .8s linear infinite; }
.ui-loading { display:flex; gap:12px; align-items:center; grid-column:1/-1; min-height:160px; color:#526079; }
.ui-loading::before { content:""; width:20px; height:20px; border:2px solid #cbd3e2; border-top-color:#3157ff; border-radius:50%; animation:ui-spin .8s linear infinite; }
@keyframes ui-spin { to { transform:rotate(360deg); } }
.footer-about p,.footer-links a,.footer-legal a,.newsletter-card p { font-size:14px; line-height:1.7; }
.footer-links a { display:flex; align-items:center; min-height:40px; }
.footer-links a:hover,.footer-legal a:hover { color:#2345cf !important; }
.footer-legal [href="#"] { display:none; }
.footer-top { gap:32px; padding:48px; }
.ui-menu-trigger { display:none; align-items:center; justify-content:center; width:44px; min-width:44px; height:44px; padding:0; border:1px solid var(--ui-border); border-radius:50%; background:#fff; color:#15213a; cursor:pointer; }
.ui-menu-trigger svg,.ui-dialog-close svg { width:22px; height:22px; }
.ui-menu-trigger:hover { background:#f1f4f9; }
.ui-publication-actions { display:flex; align-items:center; gap:12px; }
.ba-publication .ui-menu-trigger { display:inline-flex; }
.ba-publication .ba-button,.ba-contents summary { min-height:44px; }
.ba-contents summary { display:flex; align-items:center; justify-content:space-between; }
.ba-contents a { display:block; padding:6px 0; min-height:36px; }
.ba-body { font-kerning:normal; }
.ba-body:has(>p:only-child) { grid-column:1/-1; max-width:672px; margin:auto; }
.ba-story:hover { border-color:#a1a1aa; }
.ba-story:focus-visible { outline-offset:4px; }
.ba-main .ba-reveal-ready { transition-duration:.3s; }
.ui-menu-dialog { width:min(560px,calc(100% - 32px)); max-height:calc(100dvh - 48px); overflow:auto; padding:24px; border:1px solid var(--ui-border); border-radius:20px; box-shadow:0 24px 100px #07112633; background:#fff; color:#15213a; }
.ui-menu-dialog::backdrop { background:#08132866; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.ui-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.ui-dialog-head h2 { margin:0; font-size:22px; letter-spacing:-.025em; }
.ui-dialog-close { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--ui-border); border-radius:50%; color:inherit; background:#fff; cursor:pointer; }
.ui-menu-dialog .search-page-form { margin:0 0 24px; gap:8px; }
.ui-menu-dialog .search-page-form button { padding:12px 16px; }
.ui-menu-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.ui-menu-nav a { display:flex; align-items:center; padding:12px 16px; border:1px solid var(--ui-border); border-radius:10px; min-height:48px; font-size:15px; text-decoration:none; color:#15213a; }
.ui-menu-nav a:hover { background:#f3f6fb; }
.ui-menu-topics { margin-top:24px; padding-top:24px; border-top:1px solid var(--ui-border); }
.ui-menu-topics h3 { margin:0 0 12px; font-size:13px; color:#526079; font-weight:500; }
.ui-menu-topics nav { display:flex; flex-wrap:wrap; gap:8px; }
.ui-menu-topics a { display:flex; align-items:center; min-height:44px; padding:8px 12px; border:1px solid var(--ui-border); border-radius:999px; color:#15213a; font-size:13px; }

/* Restrained spring response: transform-only motion, no layout or reading shifts. */
:root { --ui-spring:cubic-bezier(.22,1.3,.36,1); }
@supports (transition-timing-function:linear(0,1)) {
  :root { --ui-spring:linear(0, .24 10%, .64 22%, .9 34%, 1.035 48%, 1.018 64%, .996 82%, 1); }
}
:is(.ui-language-switch,.ui-menu-trigger,.ui-dialog-close,.auth-link-primary,.ba-button,.search-page-form button,.view-all-button,.load-more,.topic-rail a,.ui-menu-nav a,.ui-menu-topics a,.mobile-app-banner a) {
  scale:1;
  transition:scale 420ms var(--ui-spring),background-color 180ms ease,border-color 180ms ease,box-shadow 180ms ease;
}
:is(.ui-menu-trigger,.ui-dialog-close,.auth-link-primary,.ba-button,.search-page-form button,.view-all-button,.load-more,.topic-rail a,.ui-menu-nav a,.ui-menu-topics a,.mobile-app-banner a):active:not(:disabled) {
  scale:.97;
  transition-duration:90ms;
  transition-timing-function:ease-out;
}
.post-card,.category-card,.result-card,.ba-story {
  translate:0 0;
  transition:translate 480ms var(--ui-spring),border-color 180ms ease,box-shadow 220ms ease;
}
@media(hover:hover) and (pointer:fine) {
  .post-card:hover,.category-card:hover,.result-card:hover,.ba-story:hover { translate:0 -3px; }
}
@media(prefers-reduced-motion:reduce) {
  :is(.ui-menu-trigger,.ui-dialog-close,.auth-link-primary,.ba-button,.search-page-form button,.view-all-button,.load-more,.topic-rail a,.ui-menu-nav a,.ui-menu-topics a,.mobile-app-banner a):active { scale:1; }
  .post-card:hover,.category-card:hover,.result-card:hover,.ba-story:hover { translate:none; }
}

/* Four masked backdrop planes create a spatial ramp, not blurred foreground text. */
.ui-scroll-sentinel { position:absolute; top:48px; left:0; width:1px; height:1px; pointer-events:none; }
.ui-blur-edge { position:fixed; inset-inline:0; pointer-events:none; user-select:none; contain:layout style; --ui-blur-direction:to bottom; }
.ui-blur-edge--top { top:0; height:116px; z-index:90; opacity:0; transition:opacity .24s ease; background:linear-gradient(to bottom,#ffffffd9, #ffffff66 60%,#ffffff00); }
.ui-is-scrolled .ui-blur-edge--top { opacity:1; }
.ui-blur-edge--bottom { display:none; bottom:0; height:112px; z-index:990; --ui-blur-direction:to top; background:linear-gradient(to top,#ffffffd9,#ffffff66 54%,#ffffff00); }
.ui-blur-edge > span { position:absolute; inset:0; pointer-events:none; }
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  .ui-blur-edge > span:nth-child(1) { -webkit-backdrop-filter:blur(1px); backdrop-filter:blur(1px); --ui-blur-mask:linear-gradient(var(--ui-blur-direction),#000 0%,#000 75%,transparent 100%); }
  .ui-blur-edge > span:nth-child(2) { -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); --ui-blur-mask:linear-gradient(var(--ui-blur-direction),#000 0%,#000 50%,transparent 85%); }
  .ui-blur-edge > span:nth-child(3) { -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); --ui-blur-mask:linear-gradient(var(--ui-blur-direction),#000 0%,#000 25%,transparent 65%); }
  .ui-blur-edge > span:nth-child(4) { -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px); --ui-blur-mask:linear-gradient(var(--ui-blur-direction),#000 0%,transparent 45%); }
  .ui-blur-edge > span { -webkit-mask-image:var(--ui-blur-mask); mask-image:var(--ui-blur-mask); }
}
body.theme-dark .ui-blur-edge { background:linear-gradient(var(--ui-blur-direction),#0b1224e6,#0b122466 54%,#0b122400); }
@media(max-width:760px) {
  .ui-blur-edge--top { height:100px; }
  .ui-blur-edge--bottom { display:block; height:calc(112px + env(safe-area-inset-bottom)); }
}
@media(prefers-reduced-transparency:reduce) {
  .ui-blur-edge > span { -webkit-backdrop-filter:none; backdrop-filter:none; }
  .ui-menu-dialog::backdrop { -webkit-backdrop-filter:none; backdrop-filter:none; }
  .site-header,.category-header,.search-header { background:#fff; -webkit-backdrop-filter:none; backdrop-filter:none; }
}

/* Alignment: section content follows the same outer grid; card rows share tracks. */
.publication-intro,.page-intro,.search-hero { padding-inline:0; }
.topic-rail { padding-inline:0; }
.search-main > .search-page-form { margin-inline:0; }
.section-heading { align-items:end; }
.results-head { align-items:baseline; }
.section-heading h2,.results-head h2 { line-height:1.16; }
.section-heading > p,.results-head > p { margin:0; }
.section-heading > p { padding-bottom:4px; }
.publication-intro-aside { padding-bottom:0; }
.publication-intro-aside > a { min-height:40px; }
.hero-meta { align-items:center; gap:16px; }
.post-card h3,.category-card h3,.result-card h3 { margin-top:16px; }
.post-card .post-copy > div:first-child,.category-card .category-card-copy > div:first-child { padding-inline:16px; }
.post-card .post-copy { padding-inline:0; }
.category-card .category-card-copy { padding-inline:0; }
.post-card .post-copy > p { padding-inline:16px; }
.post-card .post-meta,.category-card .card-meta { margin-inline:16px; }
.ba-story-copy { display:flex; flex-direction:column; align-items:start; }
.ba-read-next { margin-top:auto; padding-top:16px; }
.ba-story-image { align-self:start; }
.footer-top { align-items:start; }
.newsletter-card h3,.newsletter-card p { text-align:left; }
.newsletter-card h3 { margin-top:0; }

@supports(grid-template-rows:subgrid) {
  .post-grid > .post-card { display:grid; grid-template-rows:subgrid; grid-row:span 4; row-gap:20px; }
  .post-card > .post-card-link,.post-card .post-copy { display:contents; }
  .post-card .post-image { height:auto; aspect-ratio:16/10; }
  .post-card .post-copy > div:first-child { padding-top:4px; }
  .post-card .post-copy > p { margin:0; align-self:start; }
  .post-card .post-meta { margin-top:0; margin-bottom:16px; padding-top:16px; align-self:end; }
  .category-grid > .category-card { display:grid; grid-template-rows:subgrid; grid-row:span 3; row-gap:20px; }
  .category-card > .category-card-link,.category-card .category-card-copy { display:contents; }
  .category-card img.card-image { height:auto; aspect-ratio:16/10; }
  .category-card .category-card-copy > div:first-child { padding-top:4px; }
  .category-card .card-meta { margin-top:0; margin-bottom:16px; padding-top:16px; align-self:end; }
  .results-grid > .result-card { display:grid; grid-template-rows:subgrid; grid-row:span 3; row-gap:20px; padding:24px; }
  .result-card > p { margin:0; align-self:start; }
  .result-card .result-meta { margin:0; padding-top:16px; align-self:end; }
}
@media(max-width:1180px) {
  .site-header,.category-header,.search-header { grid-template-columns:auto auto; justify-content:space-between; gap:16px; }
  .nav-links,.top-nav { display:none; }
  .ui-menu-trigger { display:inline-flex; }
  .header-actions,.top-actions { width:auto; justify-self:end; }
  .publication-intro { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:32px; }
  .hero-card { padding:32px; }
}
@media(max-width:900px) {
  .hero-media { grid-template-columns:1fr; }
  .hero-media > img { height:auto; aspect-ratio:16/9; min-height:0; max-height:420px; }
  .hero-cover-link img { height:auto; aspect-ratio:16/9; min-height:0; max-height:420px; }
  .hero-card { min-height:0; padding:32px; }
  .hero-card::before { display:none; }
  .hero-card h2 { margin:20px 0 24px; font-size:34px; }
  .publication-intro { grid-template-columns:1fr; gap:24px; padding-top:56px; }
  .publication-intro h1 { max-width:760px; font-size:clamp(42px,7vw,62px); }
  .publication-intro-aside p { max-width:580px; margin-bottom:16px; }
  .footer-top { grid-template-columns:1fr 1fr; padding:32px; }
  .newsletter-card { grid-column:1/-1; }
}
@media(max-width:760px) {
  .site-header,.category-header,.search-header { min-height:68px; padding:10px; }
  .header-actions,.top-actions { gap:8px; }
  .header-search,.search-box,.theme-toggle,.mode-toggle,.auth-link:not(.auth-link-primary) { display:none !important; }
  .auth-link-primary { min-height:44px; font-size:13px; padding:0 14px; }
  .brand-mark { width:34px; height:34px; }
  .brand { gap:8px; }
  .brand-text strong,.brand-copy strong { font-size:14px; }
  .publication-intro { padding:48px 0 32px; }
  .publication-intro h1 { font-size:clamp(40px,10.5vw,58px); line-height:1.08; }
  .publication-kicker,.section-index,.breadcrumb,.post-topic,.category-topic { font-size:11px; letter-spacing:.09em; }
  .topic-rail { margin-right:0; }
  .hero-card { padding:24px 18px; }
  .hero-card h2 { font-size:30px; }
  .hero { padding-bottom:48px; }
  .post-grid,.category-grid,.results-grid { gap:20px; }
  .post-card h3,.category-card h3,.result-card h3 { font-size:21px; }
  .category-main,.search-main { padding-top:24px; }
  .page-intro,.search-hero { padding:24px 0 28px; gap:20px; }
  .page-intro h1,.search-hero h1 { font-size:clamp(34px,9vw,44px); }
  .category-grid-section,.results-section { padding-top:24px; }
  .search-page-form { margin:0 0 16px; }
  .search-page-form input { font-size:16px; }
  .search-page-form button { padding-inline:18px; }
  .footer-top { grid-template-columns:1fr; gap:24px; padding:28px 18px; }
  .newsletter-card { grid-column:auto; padding:24px; }
  .footer-links { gap:24px; }
  .ba-publication > div { padding-inline:16px; }
  .ba-publication .ba-button { padding-inline:12px; font-size:12px; }
  .ui-publication-actions { gap:8px; }
  .ui-language-switch { min-width:44px; padding-inline:8px; }
  .ba-contents summary,.ba-contents a { min-height:44px; }
  body .mobile-app-banner { grid-template-columns:minmax(100px,1fr) repeat(3,44px) !important; width:calc(100% - 32px) !important; gap:8px !important; min-height:60px !important; padding:8px !important; }
  body .mobile-app-banner-icon { width:44px !important; height:44px !important; }
  body .mobile-app-banner-signup { height:44px !important; font-size:16px !important; }
  .ui-menu-dialog { padding:20px; }
}
@media(max-width:360px) {
  .site-header .brand-text,.site-header .brand-copy,.category-header .brand-copy,.search-header .brand-text { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto !important; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
