/* Shared type rules: one bilingual rhythm across every MOKE AIGC page. */
:root {
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body,
button,
input,
textarea,
select {
  font-family: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Helvetica Neue", sans-serif;
  font-kerning: normal;
}

/* Avoid the different visual widths caused by page-specific tracking. */
body * {
  letter-spacing: 0 !important;
}

/* Compact editorial hierarchy: titles stay present without taking over the page. */
body h1:not(.hero-title) {
  font-size: clamp(34px, 7.6vw, 112px) !important;
}

body:not(.home) .hero-title {
  font-size: clamp(34px, 7vw, 112px) !important;
}

body .article-header h2 {
  font-size: clamp(30px, 5.2vw, 68px) !important;
}

body .features-head h2 {
  font-size: clamp(22px, 3.2vw, 40px) !important;
}

body .page-panel h3 {
  font-size: clamp(24px, 3.8vw, 44px) !important;
}

body .section-head h2,
body .strip-head h2,
body .library-head h2 {
  font-size: clamp(22px, 2.6vw, 38px) !important;
}

body .card h2,
body .body h2 {
  font-size: clamp(18px, 2vw, 30px) !important;
}

body .block h3 {
  font-size: clamp(22px, 2.8vw, 42px) !important;
}

body .feature-card h3,
body .skill-card h3 {
  font-size: 23px !important;
}

.is-hidden {
  display: none !important;
}

.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.lang-switch a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 24px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(225, 224, 204, 0.58);
  font-size: 11px;
  line-height: 1;
}

.lang-switch a.active {
  background: #dedbc8;
  color: #050505;
}

@media (max-width: 680px) {
  html { font-size: 15px; }
}
