:root {
  --bg-deep: #071f22;
  --bg-deep-soft: #0d3033;
  --bg-paper: #f4f7f5;
  --bg-white: #ffffff;
  --text-main: #162426;
  --text-soft: #566668;
  --text-on-dark: #f4faf7;
  --accent-green: #20c875;
  --accent-coral: #e95c66;
  --accent-amber: #e8ad43;
  --border-light: #dbe5df;
  --border-dark: rgba(255,255,255,.14);
  --shadow-soft: 0 18px 50px rgba(7,31,34,.10);
  --radius-small: 10px;
  --radius-medium: 16px;
  --radius-large: 26px;
  --content-width: 1240px;
  --reading-width: 760px;
  --header-height: 82px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  overflow-wrap: break-word;
  background: var(--bg-paper);
  color: var(--text-main);
  font-family: Inter, "Noto Sans", "Noto Sans Devanagari", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.68;
  text-rendering: optimizeLegibility;
}
body.nav-open { overflow: hidden; }
a { color: #0a6c4a; text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: #07543a; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--accent-amber); outline-offset: 3px; border-radius: 4px; }
img { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
figcaption { margin-top: .7rem; color: var(--text-soft); font-size: .82rem; line-height: 1.45; }
h1, h2, h3, h4 {
  margin: 0 0 .7em;
  color: var(--text-main);
  font-weight: 720;
  line-height: 1.12;
  letter-spacing: -.025em;
}
h1 { font-size: clamp(2.4rem, 5vw, 5rem); }
h2 { font-size: clamp(1.75rem, 3vw, 3rem); }
h3 { font-size: clamp(1.15rem, 1.6vw, 1.45rem); letter-spacing: -.015em; }
p, ul, ol { margin-top: 0; margin-bottom: 1.15em; }
ul, ol { padding-left: 1.25em; }
strong { font-weight: 720; }
hr { border: 0; border-top: 1px solid var(--border-light); margin: 2rem 0; }
.site-width { width: min(calc(100% - 36px), var(--content-width)); margin-inline: auto; }
.reading-width { width: min(100%, var(--reading-width)); margin-inline: auto; }
.skip-link { position: fixed; left: 1rem; top: -10rem; z-index: 9999; padding: .7rem 1rem; background: var(--bg-white); color: var(--text-main); }
.skip-link:focus { top: 1rem; }
.information-bar { background: #031719; color: #d9e9e3; font-size: .76rem; letter-spacing: .035em; }
.information-bar__inner { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.information-bar nav { display: flex; gap: 1.2rem; }
.information-bar a { color: #d9e9e3; text-decoration: none; }
.information-bar a:hover { color: #fff; }
.information-bar__short { display: none; }
.site-header { position: sticky; top: 0; z-index: 100; background: #071f22; color: var(--text-on-dark); border-bottom: 1px solid var(--border-dark); }
.site-header__inner { min-height: var(--header-height); display: grid; grid-template-columns: 205px 1fr auto; align-items: center; gap: 1.5rem; }
.wordmark { display: grid; grid-template-columns: 2.75rem max-content; align-items: center; column-gap: .68rem; width: max-content; color: var(--text-on-dark); text-decoration: none; line-height: 1; }
.wordmark:hover { color: var(--text-on-dark); }
.wordmark__icon { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; }
.wordmark__icon svg { display: block; width: 100%; height: 100%; overflow: visible; }
.wordmark__icon-frame { fill: var(--accent-green); transition: fill .2s ease; }
.wordmark__icon-page { fill: rgba(244,250,247,.96); stroke: #073033; stroke-linejoin: round; stroke-width: 1.35; }
.wordmark__icon-line { fill: none; stroke: #073033; stroke-linecap: round; stroke-width: 1.35; }
.wordmark__icon-point { fill: var(--accent-amber); stroke: #073033; stroke-width: 1.35; }
.wordmark:hover .wordmark__icon-frame { fill: #2bd786; }
.wordmark__copy { display: grid; min-width: 0; }
.wordmark__brand { color: var(--accent-green); font-size: 1.45rem; font-weight: 800; letter-spacing: -.04em; }
.wordmark__name { margin-top: .15rem; font-size: .72rem; font-weight: 760; letter-spacing: .12em; }
.wordmark__note { margin-top: .38rem; color: #a9bfba; font-size: .58rem; letter-spacing: .02em; }
.primary-navigation__list { display: flex; align-items: center; justify-content: center; gap: clamp(.5rem, 1.5vw, 1.35rem); margin: 0; padding: 0; list-style: none; }
.primary-navigation a { display: flex; align-items: center; min-height: 44px; color: #dceae6; font-size: .84rem; font-weight: 650; text-decoration: none; white-space: nowrap; }
.primary-navigation a:hover, .primary-navigation .current-menu-item > a { color: var(--accent-green); }
.header-action { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .55rem .95rem; border: 1px solid rgba(32,200,117,.65); border-radius: var(--radius-small); color: #effff7; font-size: .82rem; font-weight: 720; text-decoration: none; }
.header-action:hover { background: var(--accent-green); color: #062318; }
.menu-toggle { display: none; min-width: 48px; min-height: 44px; border: 1px solid var(--border-dark); border-radius: var(--radius-small); background: transparent; color: var(--text-on-dark); }
.site-footer { padding: 4.5rem 0 calc(6.9rem + env(safe-area-inset-bottom)); background: #04191b; color: #c8dbd6; }
.footer-grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 3rem; }
.footer-grid h2 { color: #fff; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.footer-grid p { max-width: 30rem; color: #9eb7b1; font-size: .88rem; }
.footer-grid ul { margin: 0; padding: 0; list-style: none; }
.footer-grid li + li { margin-top: .44rem; }
.footer-grid a { color: #c8dbd6; font-size: .88rem; text-decoration: none; }
.footer-grid a:hover { color: var(--accent-green); }
.wordmark--footer { margin-bottom: 1.2rem; }
.footer-legal { display: grid; grid-template-columns: 1.3fr 1.1fr auto; gap: 2rem; margin-top: 3rem; padding-top: 1.4rem; border-top: 1px solid var(--border-dark); }
.footer-legal p { margin: 0; color: #91aaa4; font-size: .72rem; line-height: 1.55; }
.footer-legal .footer-email { grid-column: 1 / -1; padding-bottom: 1.15rem; border-bottom: 1px solid var(--border-dark); color: #c8dbd6; font-size: .9rem; text-align: center; }
.footer-email strong { color: #fff; }
.footer-email a { color: var(--accent-green); font-weight: 700; text-decoration-thickness: .08em; text-underline-offset: .2em; }
.footer-email a:hover { color: #fff; }
.floating-brand-cta {
  position: fixed;
  right: auto;
  bottom: calc(18px + env(safe-area-inset-bottom));
  left: 50%;
  z-index: 120;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 260px;
  min-height: 54px;
  padding: .8rem 1.5rem;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 999px;
  background: var(--accent-green);
  box-shadow: 0 16px 42px rgba(1,20,15,.28);
  color: #052419;
  font-size: .98rem;
  font-weight: 800;
  letter-spacing: .01em;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  transform: translateX(-50%);
  transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.floating-brand-cta::after { content: "→"; margin-left: .65rem; font-size: 1.15em; transition: transform .2s ease; }
.floating-brand-cta:hover {
  background: #2bd786;
  box-shadow: 0 18px 46px rgba(1,20,15,.36);
  color: #041d14;
  transform: translateX(-50%) translateY(-2px);
}
.floating-brand-cta:hover::after { transform: translateX(3px); }
.floating-brand-cta:focus-visible { color: #041d14; outline-color: #fff; }
.floating-brand-cta[hidden] { display: none; }
.back-to-top { position: fixed; right: 18px; bottom: 18px; z-index: 90; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: var(--bg-deep); color: #fff; box-shadow: var(--shadow-soft); cursor: pointer; }
.has-floating-brand-cta .back-to-top { bottom: calc(18px + env(safe-area-inset-bottom)); }
.back-to-top[hidden] { display: none; }
.breadcrumbs { padding: 1.3rem 0; font-size: .78rem; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .55rem; margin: 0; padding: 0; list-style: none; color: var(--text-soft); }
.breadcrumbs li + li::before { content: "/"; margin-right: .55rem; color: #98a6a2; }
.breadcrumbs a { color: var(--text-soft); }
.page-heading { max-width: 1040px; padding: 3.8rem 0 3rem; }
.page-heading h1 { max-width: 920px; font-size: clamp(2.4rem, 4.8vw, 4.8rem); }
.page-dates { display: flex; flex-wrap: wrap; gap: .55rem 1.5rem; margin: 1.4rem 0 1rem; color: var(--text-soft); font-size: .77rem; }
.page-dates b { color: var(--text-main); }
.identity-notice { max-width: 940px; margin: 1.4rem 0 0; padding: 1rem 1.2rem; border-left: 4px solid var(--accent-green); background: #e8f4ee; color: #29413e; font-size: .9rem; }
.core-content { padding-bottom: 6rem; }
.document-page { padding-bottom: 6rem; }
.document-sheet { max-width: 900px; margin: 1.8rem auto 0; padding: clamp(1.5rem, 4vw, 4.5rem); background: var(--bg-white); border: 1px solid var(--border-light); box-shadow: 0 10px 36px rgba(7,31,34,.06); }
.page-heading--document { padding: 0 0 1rem; border-bottom: 1px solid var(--border-light); }
.page-heading--document h1 { font-size: clamp(2rem, 4vw, 3.6rem); }
.document-date { color: var(--text-soft); font-size: .82rem; }
.reading-content { max-width: var(--reading-width); }
.reading-content h2 { margin-top: 2.2em; font-size: clamp(1.45rem, 2.4vw, 2.1rem); }
.reading-content h3 { margin-top: 1.8em; }
.archive-page, .search-page, .error-page { min-height: 55vh; padding: 4rem 0 6rem; }
.archive-entry, .search-result { max-width: 760px; padding: 1.5rem 0; border-bottom: 1px solid var(--border-light); }
.archive-entry h2, .search-result h2 { font-size: 1.45rem; }
.search-form { max-width: 650px; margin: 2rem 0; }
.search-form label { display: block; margin-bottom: .4rem; font-weight: 700; }
.search-form div { display: grid; grid-template-columns: 1fr auto; }
.search-form input { min-height: 48px; border: 1px solid #9aaca7; border-radius: 10px 0 0 10px; padding: .7rem .9rem; }
.search-form button { min-height: 48px; border: 0; border-radius: 0 10px 10px 0; padding: .7rem 1.2rem; background: var(--bg-deep); color: #fff; }
table { width: 100%; border-collapse: collapse; font-size: .92rem; }
th, td { padding: .85rem .9rem; border: 1px solid var(--border-light); text-align: left; vertical-align: top; }
th { background: #e9efec; font-weight: 720; }
