@font-face{font-family:WorldChinese;src:url('/assets/locale-font.woff2') format('woff2');font-weight:100 900;font-display:swap}
.language-switches{display:flex;flex-shrink:0;align-items:center;gap:2px;margin-left:auto;margin-right:20px}
.language-globe{width:20px;height:20px;flex-shrink:0;margin-right:6px}
header:has(.language-switches){gap:12px}
.language-switches .language-switch{white-space:nowrap}
.language-switches .language-switch{margin:0;min-width:44px;min-height:44px;border-bottom:1px solid transparent;opacity:.72}
.language-switches .language-switch[aria-current=page]{opacity:1;border-bottom-color:currentColor}
.language-switches .language-switch:hover,.language-switches .language-switch:focus-visible{opacity:1;outline:2px solid currentColor;outline-offset:2px}
.language-switches .language-switch[hreflang=zh-CN]{font-family:WorldChinese,Arial,sans-serif}
html:lang(zh) body{font-family:WorldChinese,Onest,'Microsoft YaHei',sans-serif;line-break:strict;word-break:normal}
html:lang(zh) h1,html:lang(zh) h2,html:lang(zh) h3{font-family:WorldChinese,Onest,sans-serif;letter-spacing:0;line-height:1.22;word-break:normal;overflow-wrap:anywhere}
html:lang(zh) p,html:lang(zh) li,html:lang(zh) figcaption,html:lang(zh) .lead{line-height:1.75;letter-spacing:0}
html:lang(zh) .eyebrow,html:lang(zh) .action,html:lang(zh) header nav a,html:lang(zh) .menu,html:lang(zh) .menu-button,html:lang(zh) .signal,html:lang(zh) .issue-toc a{font-family:WorldChinese,Onest,sans-serif;letter-spacing:0;line-height:1.5}
html:lang(zh) .product-hero h1,html:lang(zh) .hero h1,html:lang(zh) .issue-cover h1,html:lang(zh) .editorial-hero h1{font-size:clamp(48px,6.7vw,100px);line-height:1.2;letter-spacing:0}
html:lang(zh) .narrow h1{font-size:clamp(42px,6vw,80px);line-height:1.25;letter-spacing:0}
@media(max-width:1000px){header:has(.language-switches){height:auto;min-height:100px;flex-wrap:wrap;align-items:center;row-gap:8px}.language-switches{margin-right:10px}header:has(.language-switches) nav:not(.open){margin-top:0}}
@media(max-width:800px){header:has(.language-switches){padding-top:20px;padding-bottom:12px}.language-switches{order:5;flex-basis:100%;justify-content:flex-end;margin:0}.language-switches .language-switch{min-width:44px;min-height:44px}html:lang(zh) .product-hero h1,html:lang(zh) .hero h1,html:lang(zh) .issue-cover h1,html:lang(zh) .editorial-hero h1{font-size:clamp(34px,10vw,48px)}html:lang(zh) h2{font-size:clamp(28px,7.5vw,42px)}}
/* The language edition belongs to the site's name, in the same slot on every public page. */
header:has(>.public-brand){position:relative;display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:start;column-gap:32px;height:auto;min-height:140px;padding-top:24px;padding-bottom:24px}
.public-brand{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.public-brand>a{display:inline-flex;align-items:center;justify-content:flex-start;min-width:44px;min-height:44px}
.public-brand .language-switches{order:0;flex-basis:auto;justify-content:flex-start;margin:0;gap:2px}
.public-brand .language-switch{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;opacity:1;font-size:11px}
.public-brand .language-globe{width:16px;height:16px;margin-right:2px;color:inherit}
header:has(>.public-brand)>nav{align-self:start;justify-content:flex-end;flex-wrap:wrap;gap:8px 24px;margin-top:0}
header:has(>.public-brand)>nav a{display:inline-flex;align-items:center;min-width:44px;min-height:44px}
footer nav a{min-height:44px;display:inline-flex;align-items:center}
/* Primary free entry: OWNER requested bold white labels. Darken the red fill
   enough to keep small text readable on every existing public surface. */
html body a:not(.language-switch):is([href$="/review/"],[href*="/intake/?product=digital_review"]){background:#c8230a;color:#fff;font-weight:800;border:1px solid #120f0e;padding:10px 14px;display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;text-decoration:none}
html body a:not(.language-switch):is([href$="/review/"],[href*="/intake/?product=digital_review"]):is(:hover,:focus-visible){background:#a91b08;color:#fff}
.review-entry,.bureau-review-entry{border-block:2px solid #f52e09}
.intake-shortcut a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;font-weight:700;text-underline-offset:4px}
@media(max-width:800px){
  header:has(>.public-brand){min-height:132px;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;padding-top:20px;padding-bottom:20px}
  header:has(>.public-brand)>.menu,header:has(>.public-brand)>.menu-button{display:inline-flex;align-items:center;justify-content:center;min-width:60px;min-height:44px;padding:0;align-self:start}
  header:has(>.public-brand)>nav{position:absolute;top:100%;left:0;right:0;margin:0;max-height:calc(100dvh - 132px);overflow-y:auto;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:0;z-index:10}
  header:has(>.public-brand)>nav:not(.open){display:none}
  header:has(>.public-brand)>nav.open{display:flex}
  header:has(>.public-brand)>nav a{width:100%;min-height:44px}
}
/* Readable Onest display rhythm across public RU/EN surfaces. A single
   scoped safety layer wins the existing per-product specificity; Chinese
   retains its own zero tracking and 1.22 heading rhythm above. */
html:is(:lang(ru),:lang(en)) main :is(h1,h2){
  letter-spacing:0!important;
  line-height:1.1!important;
  overflow-wrap:anywhere;
}
html:is(:lang(ru),:lang(en)) main h3{
  letter-spacing:0!important;
  line-height:1.25!important;
  overflow-wrap:anywhere;
}
html:is(:lang(ru),:lang(en)) :is(.issue-statement,.author-promise,.author-lead,.bureau-statement div>p){
  letter-spacing:0!important;
  line-height:1.25!important;
}
html:is(:lang(ru),:lang(en)) :is(.system-node strong,.field-role strong,.field-center strong,.field-evidence strong,.project-route li strong,.tool-price,.site-package-price,.product-symbol>strong,.product-clock strong,.state-symbol,.genesis-core strong,.project-genesis-map li>strong,.ecosystem-issue-map article>strong,.ecosystem-map-link>strong){
  letter-spacing:0!important;
  line-height:1.1!important;
  overflow-wrap:anywhere;
}
/* Zero tracking otherwise splits the real surname in the portrait-column
   layout; these title-only sizes keep it whole without narrowing letters. */
@media(min-width:801px){html:is(:lang(ru),:lang(en)) .author-hero h1{font-size:clamp(64px,8vw,120px)}}
@media(max-width:800px){html:is(:lang(ru),:lang(en)) .author-hero h1{font-size:clamp(36px,12vw,48px)}}
/* The longest Bureau hero word must not leave its final letter on a new line. */
@media(min-width:801px){html:is(:lang(ru),:lang(en)) .hero .bureau-hero-title{font-size:clamp(56px,7.7vw,112px)}}
@media(max-width:800px){html:is(:lang(ru),:lang(en)) .hero .bureau-hero-title{font-size:clamp(22px,7vw,30px)}}
/* At the narrowest tested width, fit long diagram labels as whole words
   instead of relying on arbitrary breaks or hiding their final letters. */
@media(max-width:360px){html:is(:lang(ru),:lang(en)) :is(.field-role strong,.field-evidence strong,.project-route li strong){font-size:20px}}
/* OWNER accepted rhythmic direction: immediate feedback, user-paced reading. */
:root{--world-response:160ms;--world-transition:240ms;--world-editorial:560ms;--world-ease-response:cubic-bezier(.2,.8,.2,1);--world-ease-editorial:cubic-bezier(.22,1,.36,1)}
.action,.public-brand a,header nav a,.menu,.menu-button,.author-links a,.project-copy a,.author-socials a{transition:background-color var(--world-response) var(--world-ease-response),color var(--world-response) var(--world-ease-response),border-color var(--world-response) var(--world-ease-response),transform var(--world-response) var(--world-ease-response)}
.product-cards>a,.next-routes>a,.reading-card{transition:transform var(--world-transition) var(--world-ease-response),border-color var(--world-response) var(--world-ease-response)}
@media(hover:hover){.action:hover{transform:translateY(-2px)}.product-cards>a:hover,.next-routes>a:hover,.reading-card:hover{transform:translateY(-4px)}}
.action:active,.product-cards>a:active,.next-routes>a:active{transform:translateY(0)}
@keyframes world-menu-entry{from{opacity:.92;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:800px) and (prefers-reduced-motion:no-preference){header:has(>.public-brand)>nav.open{animation:world-menu-entry var(--world-transition) var(--world-ease-response) both}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  .action,.public-brand a,header nav a,.menu,.menu-button,.author-links a,.project-copy a,.author-socials a,.product-cards>a,.next-routes>a,.reading-card{transition:none!important;transform:none!important}
  header:has(>.public-brand)>nav.open{animation:none!important;transform:none!important}
}
