@import url("./noto-sans-jp.css");

/* Genzei blog theme: visual bridge between EmDash and the POLICY MIX simulator. */
:root {
  --color-bg: #f3f1ea !important;
  --color-bg-subtle: #ebe9df !important;
  --color-text: #132823 !important;
  --color-text-secondary: #53635d !important;
  --color-muted: #718078 !important;
  --color-border: #d8d9d1 !important;
  --color-border-subtle: #e2e5dd !important;
  --color-surface: #fbfaf6 !important;
  --color-brand: #0e6b54 !important;
  --color-brand-hover: #064b3d !important;
  --font-body: "Noto Sans JP Variable", "Noto Sans JP", sans-serif !important;
  --font-heading: "Noto Sans JP Variable", "Noto Sans JP", sans-serif !important;
  --content-width: 760px !important;
  --wide-width: 1180px !important;
  --radius: 3px !important;
  --radius-lg: 4px !important;
}

body {
  margin: 0 !important;
  background: #f3f1ea !important;
  color: #132823 !important;
  font-size: 17px !important;
  line-height: 1.65 !important;
  font-family: var(--font-body) !important;
  font-feature-settings: "palt";
}
*, *::before, *::after { box-sizing: border-box; }
button, select, input { font: inherit; }

.site-header {
  background: rgba(243, 241, 234, .94) !important;
  border-bottom: 1px solid #cdd2ca !important;
  backdrop-filter: blur(12px);
}

.nav {
  max-width: none !important;
  min-height: 76px !important;
  padding: 0 4vw !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.site-title {
  color: #132823 !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  letter-spacing: .13em !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
}

.site-title::before,
.footer-logo::before {
  content: "";
  display: inline-block;
  width: 29px;
  height: 29px;
  flex: 0 0 29px;
  border-radius: 3px;
  background:
    linear-gradient(#c4ff58, #c4ff58) 6px 12px / 3px 10px no-repeat,
    linear-gradient(#c4ff58, #c4ff58) 12px 7px / 3px 15px no-repeat,
    linear-gradient(#c4ff58, #c4ff58) 18px 10px / 3px 12px no-repeat,
    #0d2420;
}

.nav-right { display: flex !important; align-items: center !important; gap: 30px !important; }
.nav-links { display: flex !important; align-items: center !important; gap: 30px !important; }
.nav-links a { color: #53635d !important; font-size: .88rem !important; font-weight: 600 !important; }
.nav-links a:hover { color: #0e6b54 !important; }
.about-share { border: 0; border-radius: 3px; padding: 12px 18px; background: #0d2420; color: white; font: 700 .82rem/1.2 var(--font-body); cursor: pointer; }
.about-share span { color: #c4ff58; margin-left: 5px; }

.site-search { width: 210px !important; }
.site-search-input {
  border: 1px solid #d8d9d1 !important;
  background: #fbfaf6 !important;
  border-radius: 3px !important;
  color: #132823 !important;
}

.posts-page,
.home-content {
  max-width: 1180px !important;
  padding: 58px 4vw 92px !important;
  margin: 0 auto !important;
}

.page-header,
.section-header {
  max-width: 860px;
  margin: 0 auto 28px !important;
  padding: 22px 0 20px !important;
  border-bottom: 1px solid #d8d9d1 !important;
}

.page-header::before,
.section-header::before {
  content: "POLICY NOTES / JAPAN";
  display: block;
  margin-bottom: 12px;
  color: #0e6b54;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .16em;
}

.page-header h1,
.section-header h2 {
  color: #132823 !important;
  font-size: clamp(2rem, 4vw, 3.25rem) !important;
  letter-spacing: -.05em !important;
}

.page-header p { color: #68746f !important; font-size: 1rem !important; }
.posts-list { max-width: 860px; margin: 0 auto; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px !important; }
.post-item { display: flex !important; flex-direction: column !important; border: 1px solid #d8d9d1 !important; padding: 0 !important; background: #fbfaf6 !important; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.post-item:hover { border-color: #0e6b54 !important; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(19, 40, 35, .08); }
.genzei-post-cover { display: block; height: 154px; background: #0d2420 url("/_astro/genzei-article-cover.svg") center / cover no-repeat; }
.post-item:nth-child(2n) .genzei-post-cover { filter: hue-rotate(12deg) saturate(.9); }
.post-item:nth-child(3n) .genzei-post-cover { filter: hue-rotate(-12deg) saturate(.9); }
.post-link { display: block; min-height: 0 !important; height: auto; flex: 1 1 auto; padding: 22px !important; color: inherit !important; }
.post-meta { color: #718078 !important; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .72rem !important; letter-spacing: .03em; }
.post-title { color: #132823 !important; font-size: 1.35rem !important; line-height: 1.35 !important; letter-spacing: -.035em !important; margin-top: 12px !important; }
.post-link:hover .post-title { color: #0e6b54 !important; }
.post-excerpt { color: #68746f !important; font-size: .95rem !important; line-height: 1.75 !important; margin-top: 12px !important; }
.posts-pagination { position: relative; z-index: 1; max-width: 860px; margin: 34px auto 0; padding-top: 22px; border-top: 1px solid #d8d9d1; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.pagination-pages { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; }
.pagination-link, .pagination-current, .pagination-disabled { min-width: 42px; height: 40px; display: inline-flex; align-items: center; justify-content: center; padding: 0 12px; border: 1px solid #d8d9d1; border-radius: 3px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78rem; line-height: 1; text-decoration: none !important; }
.pagination-link { background: #fbfaf6; color: #0e6b54 !important; }
.pagination-link:hover { border-color: #0e6b54; background: #eef5ef; }
.pagination-current { border-color: #0e6b54; background: #0e6b54; color: #fff; }
.pagination-disabled { border-color: #e7e8e1; background: transparent; color: #a7b2ac; }
.pagination-prev, .pagination-next { min-width: 84px; }

.article {
  max-width: 1180px !important;
  padding: 74px 4vw 48px !important;
  margin: 0 auto !important;
}
.article-grid { display: grid !important; grid-template-columns: 150px minmax(0, 760px) 210px !important; gap: 30px !important; align-items: start !important; }
.article-meta-col { position: sticky; top: 104px; border-top: 2px solid #0e6b54; padding-top: 14px; color: #68746f !important; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .75rem !important; line-height: 1.6 !important; }
.article-meta-col .meta-block { padding: 0 0 18px !important; }
.article-meta-col .meta-label { display: block; color: #0e6b54 !important; font-size: .66rem !important; letter-spacing: .13em; text-transform: uppercase; }
.article-meta-col .meta-value { display: block; margin-top: 4px; }
.article-main { position: relative; min-width: 0; overflow: hidden; background: #fbfaf6 !important; border: 1px solid #d8d9d1 !important; padding: 34px 42px 30px !important; box-shadow: 0 18px 46px rgba(19, 40, 35, .07); }
.article-header { border-bottom: 1px solid #d8d9d1 !important; padding-bottom: 30px !important; margin-bottom: 34px !important; }
.article-header::before { content: ""; display: block; min-height: 228px; margin: -34px -42px 30px; background: #0d2420 url("/_astro/genzei-article-cover.svg") center / cover no-repeat; }
.article-header .article-meta { display: none !important; }
.article-header h1 { color: #132823 !important; max-width: 680px; margin: 0 auto !important; text-align: center; font-size: clamp(2rem, 4vw, 3.35rem) !important; line-height: 1.18 !important; letter-spacing: -.06em !important; text-wrap: balance; }
.article-header p { color: #53635d !important; max-width: 650px; margin: 18px auto 0 !important; text-align: center; font-size: 1.06rem !important; line-height: 1.9 !important; }
.article-content { max-width: 680px; margin: 0 auto; }
.article-content > p { color: #2e403a !important; font-size: 1.02rem !important; line-height: 2 !important; margin: 0 0 1.25rem !important; }
.article-content > p.article-section-label,
.article-content > h2.article-section-label { color: #132823 !important; font-family: var(--font-heading) !important; font-size: 1.35rem !important; font-weight: 800; letter-spacing: -.035em; line-height: 1.4 !important; margin: 2.25rem 0 .85rem !important; padding: 0 0 10px !important; border-left: 0 !important; border-bottom: 1px solid #d8d9d1; }
.article-content > p.article-section-label::before,
.article-content > h2.article-section-label::before { content: ""; display: inline-block; width: 9px; height: 9px; margin: 0 10px 2px 0; background: #d59f3e; }
.article-content > p.article-section-label:first-child,
.article-content > h2.article-section-label:first-child { margin-top: 0 !important; }
.article-content > p.article-lead { color: #132823 !important; font-size: 1.15rem !important; font-weight: 700; line-height: 1.9 !important; padding: 18px 20px !important; margin-bottom: 1.5rem !important; background: #fff6e3; border-left: 4px solid #d59f3e; }
.article-content > p.article-metric-line { display: flex; justify-content: space-between; gap: 24px; align-items: baseline; color: #132823 !important; font-size: .98rem !important; font-weight: 700; line-height: 1.5 !important; padding: 14px 16px !important; margin: 0 !important; background: #f0f5ef; border-bottom: 1px solid #d8d9d1; }
.article-content > p.article-metric-line:first-of-type { border-top: 1px solid #d8d9d1; }
.article-content > p.article-metric-line + p:not(.article-metric-line) { margin-top: 1.4rem !important; }
.article-content > p.article-source { color: #68746f !important; font-size: .82rem !important; line-height: 1.65 !important; margin: .35rem 0 !important; padding-left: 14px; border-left: 2px solid #c4ff58; }
.article-content > p.article-source a { word-break: break-all; }
.article-main h2 { color: #0e6b54 !important; border-left: 3px solid #42d3a0; padding-left: 12px; margin: 2.2em 0 .8em !important; font-size: 1.55rem !important; }
.article-main h3 { color: #132823 !important; margin-top: 1.8em !important; }
.article-main a { color: #0e6b54 !important; text-decoration: underline; text-decoration-color: #42d3a0; text-underline-offset: 3px; }
.article-sidebar { border-left: 1px solid #d8d9d1; padding-left: 18px; }
.article-sidebar::before { content: "SIMULATOR NOTE"; display: block; color: #0e6b54; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .68rem; font-weight: 800; letter-spacing: .14em; margin-bottom: 18px; }
.article-sidebar h3 { color: #0e6b54 !important; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78rem !important; letter-spacing: .12em !important; text-transform: uppercase; }
.article-sidebar .widget { padding: 0 0 20px !important; margin-bottom: 20px !important; border-bottom: 1px solid #d8d9d1 !important; }
.article-sidebar a { color: #53635d !important; line-height: 1.65 !important; }
.article-comments { margin-top: 46px !important; padding-top: 28px !important; border-top: 1px solid #d8d9d1 !important; }
.more-posts { max-width: 860px !important; margin: 36px auto 0 !important; padding-top: 24px !important; padding-bottom: 64px !important; border-top: 1px solid #d8d9d1 !important; }
.more-title { color: #132823 !important; font-size: 1.8rem !important; line-height: 1.3 !important; letter-spacing: -.04em !important; margin: 0 0 20px !important; }
.more-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px !important; }
.more-grid .post-card { display: block !important; min-height: 0 !important; height: auto !important; border: 1px solid #d8d9d1 !important; background: #fbfaf6 !important; transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.more-grid .post-card:hover { border-color: #0e6b54 !important; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(19, 40, 35, .08); }
.more-grid .card-link { display: block !important; height: 100%; padding: 0 !important; }
.more-grid .card-placeholder { display: block !important; width: 100% !important; height: 182px !important; background: #0d2420 url("/_astro/genzei-article-cover.svg") center / cover no-repeat !important; }
.more-grid .post-card:nth-child(2) .card-placeholder { background-position: center !important; filter: hue-rotate(12deg) saturate(.9); }
.more-grid .post-card:nth-child(3) .card-placeholder { background-position: center !important; filter: hue-rotate(-12deg) saturate(.9); }
.more-grid .card-body { padding: 17px 19px 20px !important; }
.more-grid .card-meta { color: #718078 !important; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .7rem !important; letter-spacing: .03em; }
.more-grid .card-title { color: #132823 !important; font-size: 1.12rem !important; line-height: 1.4 !important; letter-spacing: -.025em !important; margin: 10px 0 0 !important; }
.more-grid .card-excerpt { color: #68746f !important; font-size: .86rem !important; line-height: 1.7 !important; margin: 9px 0 0 !important; }

.site-footer { background: #091c18 !important; color: white !important; }
.footer-inner { max-width: none !important; padding: 34px 4vw 22px !important; }
.footer-logo { color: white !important; font-size: 16px !important; font-weight: 700 !important; letter-spacing: .13em !important; display: inline-flex !important; align-items: center; gap: 10px; }
.footer-tagline, .footer-copyright { color: #a3b4ae !important; }
.footer-copyright { font-size: 0 !important; }
.footer-copyright::after { content: "© Machta-Gummi"; font-size: .875rem; }
.footer-copyright.genzei-copyright { font-size: var(--font-size-sm) !important; }
.footer-copyright.genzei-copyright::after { content: none; }
.footer-links a { color: #c8d5cf !important; }
.footer-links a:hover { color: #c4ff58 !important; }
.site-footer .footer-grid { display: grid; grid-template-columns: minmax(220px,1.35fr) repeat(2,minmax(140px,.7fr)) minmax(230px,1.1fr); gap: 34px; }
.site-footer .footer-brand { max-width: 360px; }
.site-footer .footer-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.site-footer .footer-heading { color: #8fa59d; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 18px; }
.site-footer .footer-bottom { display: flex; align-items: center; justify-content: space-between; }
.theme-switcher { display: none !important; }
.genzei-footer-ai-wrap { position: relative; }
.genzei-footer-ai { display: inline-flex; align-items: center; gap: 8px; border: 0; border-radius: 3px; padding: 11px 16px; background: #c4ff58; color: #0d2420; cursor: pointer; font: 700 .82rem/1.2 var(--font-body); }
.genzei-footer-ai:hover { background: #e0ff9f; }
.genzei-footer-ai > span { font-size: 1.05rem; line-height: 1; }
.genzei-footer-ai-menu { position: absolute; right: 0; bottom: calc(100% + 10px); z-index: 20; width: 226px; padding: 8px; border: 1px solid #d8d9d1; border-radius: 6px; background: #fbfaf6; box-shadow: 0 14px 32px rgba(19,40,35,.2); }
.genzei-footer-ai-menu[hidden] { display: none; }
.genzei-footer-ai-intro { padding: 8px 9px 10px; border-bottom: 1px solid #d8d9d1; color: #68746f; font-size: .72rem; }
.genzei-footer-ai-menu a { display: flex; align-items: center; gap: 9px; padding: 9px; border-radius: 4px; color: #132823 !important; text-decoration: none !important; font-size: .82rem; }
.genzei-footer-ai-menu a:hover { background: #eef5ef; color: #0e6b54 !important; }
.genzei-footer-ai-menu a > span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 6px; background: #132823; color: white; font-size: .82rem; }
.genzei-footer-ai-menu a[data-ai="gemini"] > span { background: linear-gradient(135deg,#7667ff,#e86fa9); }
.genzei-footer-ai-menu a[data-ai="claude"] > span { background: #d97d5d; }
.genzei-footer-ai-menu a[data-ai="perplexity"] > span { background: #32c8bd; color: #073a38; }

@media (max-width: 980px) {
  .posts-list { grid-template-columns: 1fr !important; }
  .article-grid { grid-template-columns: 1fr !important; }
  .more-grid { grid-template-columns: 1fr !important; }
  .article-meta-col, .article-sidebar { position: static; border-left: 0; border-top: 1px solid #d8d9d1; padding: 12px 0; }
  .article-meta-col { order: -1; }
}

@media (max-width: 900px) {
  .site-footer .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .site-footer .footer-brand { grid-column: 1 / -1; max-width: none; }
}

@media (max-width: 640px) {
  .nav { padding: 0 18px !important; }
  .nav-right { gap: 12px !important; }
  .nav-links { display: none !important; }
  .about-share { padding: 10px 13px; font-size: .76rem; }
  .site-search { width: 150px !important; }
  .site-footer .footer-grid { grid-template-columns: 1fr; gap: 25px; }
  .site-footer .footer-brand { grid-column: auto; }
  .posts-page, .home-content, .article { padding: 36px 18px 60px !important; }
  .article-main { padding: 24px 20px 28px !important; }
  .article-header::before { min-height: 178px; margin: -24px -20px 24px; }
  .page-header h1, .section-header h2 { font-size: 2rem !important; }
  .article-header h1 { font-size: 2.15rem !important; }
  .more-grid .card-placeholder { height: 142px !important; }
  .genzei-post-cover { height: 126px; }
  .article-content > p { font-size: .98rem !important; line-height: 1.9 !important; }
  .posts-pagination { justify-content: center; flex-wrap: wrap; }
  .pagination-pages { order: -1; width: 100%; }
}

/* EmDash's theme buttons toggle html.dark; keep the custom Genzei theme in sync. */
html.dark {
  color-scheme: dark;
  --color-bg: #071713 !important;
  --color-bg-subtle: #0b211c !important;
  --color-text: #e7f1ed !important;
  --color-text-secondary: #b4c7c0 !important;
  --color-muted: #8ea39b !important;
  --color-border: #29463e !important;
  --color-border-subtle: #1f3a32 !important;
  --color-surface: #102a24 !important;
  --color-brand: #63d8ae !important;
  --color-brand-hover: #9bf0ca !important;
}
html.dark body { background: #071713 !important; color: #e7f1ed !important; }
html.dark .site-header { background: rgba(7, 23, 19, .94) !important; border-color: #29463e !important; }
html.dark .site-title, html.dark .page-header h1, html.dark .section-header h2, html.dark .post-title, html.dark .article-header h1, html.dark .article-content > p.article-section-label, html.dark .article-content > h2.article-section-label, html.dark .article-main h3, html.dark .more-title, html.dark .card-title, html.dark .genzei-about h1, html.dark .genzei-about-card h2 { color: #e7f1ed !important; }
html.dark .nav-links a, html.dark .page-header p, html.dark .post-excerpt, html.dark .article-header p, html.dark .article-content > p, html.dark .article-sidebar a, html.dark .more-grid .card-excerpt, html.dark .genzei-about-lead, html.dark .genzei-about-card p { color: #b4c7c0 !important; }
html.dark .site-search-input { background: #102a24 !important; border-color: #29463e !important; color: #e7f1ed !important; }
html.dark .page-header, html.dark .section-header, html.dark .article-header, html.dark .article-sidebar, html.dark .article-comments { border-color: #29463e !important; }
html.dark .post-item, html.dark .article-main, html.dark .more-grid .post-card, html.dark .genzei-about-card { background: #102a24 !important; border-color: #29463e !important; }
html.dark .article-content > p.article-metric-line { background: #17352d !important; border-color: #29463e !important; color: #e7f1ed !important; }
html.dark .article-content > p.article-lead { background: #243b2f !important; color: #e7f1ed !important; }
html.dark .article-content > p.article-source { border-color: #63d8ae !important; }
html.dark .article-main h2 { color: #63d8ae !important; border-color: #42d3a0 !important; }
html.dark .article-sidebar .widget, html.dark .footer-bottom { border-color: #29463e !important; }
html.dark .more-posts { border-color: #29463e !important; }
html.dark .more-grid .post-card:hover, html.dark .post-item:hover { border-color: #63d8ae !important; }
html.dark .posts-pagination { border-color: #29463e; }
html.dark .pagination-link { border-color: #29463e; background: #102a24; color: #63d8ae !important; }
html.dark .pagination-link:hover { border-color: #63d8ae; background: #17352d; }
html.dark .pagination-current { border-color: #63d8ae; background: #63d8ae; color: #071713; }
html.dark .pagination-disabled { border-color: #29463e; color: #6f8780; }
html.dark .genzei-about-card small, html.dark .genzei-about-kicker { color: #63d8ae !important; }
html.dark .genzei-footer-ai-menu { background: #102a24; border-color: #29463e; }
html.dark .genzei-footer-ai-intro { border-color: #29463e; color: #a9bbb5; }
html.dark .genzei-footer-ai-menu a { color: #e7f1ed !important; }
html.dark .genzei-footer-ai-menu a:hover { background: #17352d; }

/* Use the exact simulator logo structure and the exact fixed AI consultation widget. */
.site-title::before, .footer-logo::before { display: none !important; }
.site-title .brand-mark, .footer-logo .brand-mark { width: 29px; height: 29px; display: flex; flex: 0 0 29px; gap: 4px; align-items: flex-end; padding: 5px; background: #0d2420; border-radius: 3px; }
.site-title .brand-mark i, .footer-logo .brand-mark i { display: block; width: 3px; background: #c4ff58; border-radius: 2px; }
.site-title .brand-mark i:nth-child(1), .footer-logo .brand-mark i:nth-child(1) { height: 9px; }
.site-title .brand-mark i:nth-child(2), .footer-logo .brand-mark i:nth-child(2) { height: 17px; }
.site-title .brand-mark i:nth-child(3), .footer-logo .brand-mark i:nth-child(3) { height: 12px; }
.site-title .brand-name { color: #132823; white-space: nowrap; letter-spacing: .06em; }
.site-title .brand-name b { color: #0e6b54; }
.footer-logo .brand-name { color: white; white-space: nowrap; letter-spacing: .06em; }
.footer-logo .brand-name b { color: #42d3a0; }
html.dark .site-title .brand-name { color: #e7f1ed; }
html.dark .site-title .brand-name b { color: #63d8ae; }

.ai-float { position: fixed; right: 24px; bottom: 24px; z-index: 70; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.ai-float-menu { width: 286px; overflow: hidden; border: 1px solid #dce4df; border-radius: 16px; background: #fff; box-shadow: 0 18px 45px #07171328; }
.ai-float-intro { padding: 16px 17px; border-bottom: 1px solid #e8ede9; color: #5e6d67; font-size: 12px; line-height: 1.5; }
.ai-float-option { width: 100%; display: flex; align-items: center; gap: 12px; border: 0; border-bottom: 1px solid #eef2ef; background: #fff; color: #0d2420; padding: 13px 17px; text-align: left; font-size: 15px; transition: background .16s ease; }
.ai-float-option:last-child { border-bottom: 0; }
.ai-float-option:hover { background: #f4f8f5; }
.ai-float-option > span { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid #dbe5df; border-radius: 50%; background: #fff; color: #0d2420; font-size: 18px; }
.ai-float-option.gemini > span { color: #7168e9; }
.ai-float-option.claude > span { color: #d9795e; }
.ai-float-option.perplexity > span { color: #21bcb2; }
.ai-float-trigger { display: flex; align-items: center; gap: 9px; border: 0; border-radius: 999px; background: #ff7417; color: #fff; padding: 14px 20px; font-size: 15px; font-weight: 700; box-shadow: 0 10px 24px #9c461d45; transition: transform .16s ease, background .16s ease; }
.ai-float-trigger:hover { transform: translateY(-2px); background: #ed650d; }
.ai-float-trigger > span { font-size: 21px; line-height: 1; }
@media (max-width: 720px) { .ai-float { right: 16px; bottom: 16px; } .ai-float-menu { width: min(286px, calc(100vw - 32px)); } .ai-float-trigger { padding: 13px 17px; font-size: 14px; } }

/* Shared simulator chrome: the public pages use the same header and footer as the simulator. */
.topbar {
  height: 76px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0 4vw !important;
  border-bottom: 1px solid #cdd2ca !important;
  background: rgba(243, 241, 234, .94) !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 20 !important;
  backdrop-filter: blur(12px);
}
.topbar .brand {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  text-decoration: none !important;
  color: #132823 !important;
  font-size: 16px !important;
  letter-spacing: .13em !important;
  font-weight: 700 !important;
}
.topbar .brand .brand-mark,
.simulator-footer .footer-logo .brand-mark {
  width: 29px !important;
  height: 29px !important;
  display: flex !important;
  flex: 0 0 29px !important;
  gap: 4px !important;
  align-items: flex-end !important;
  padding: 5px !important;
  background: #0d2420 !important;
  border-radius: 3px !important;
  box-sizing: border-box !important;
}
.topbar .brand .brand-mark i,
.simulator-footer .footer-logo .brand-mark i { display: block !important; width: 3px !important; background: #c4ff58 !important; border-radius: 2px !important; }
.topbar .brand .brand-mark i:nth-child(1),
.simulator-footer .footer-logo .brand-mark i:nth-child(1) { height: 9px !important; }
.topbar .brand .brand-mark i:nth-child(2),
.simulator-footer .footer-logo .brand-mark i:nth-child(2) { height: 17px !important; }
.topbar .brand .brand-mark i:nth-child(3),
.simulator-footer .footer-logo .brand-mark i:nth-child(3) { height: 12px !important; }
.topbar .brand .brand-name { white-space: nowrap; letter-spacing: .06em !important; }
.topbar .brand .brand-name b { color: #0e6b54 !important; }
.topbar nav { display: flex !important; gap: 34px !important; align-items: center !important; }
.topbar nav a { color: #4e5c57 !important; font-size: 15px !important; text-decoration: none !important; }
.topbar nav a:first-child { color: #132823 !important; font-weight: 700 !important; }
.topbar .top-actions { position: relative !important; }
.topbar .top-actions button {
  background: #0d2420 !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 3px !important;
  padding: 13px 20px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
}
.topbar .top-actions button span { color: #c4ff58 !important; margin-left: 7px !important; }

.simulator-footer { padding: 0 !important; display: block !important; background: #091c18 !important; color: #fff !important; }
.simulator-footer .footer-inner { max-width: none !important; padding: 34px 4vw 22px !important; }
.simulator-footer .footer-grid { display: grid !important; grid-template-columns: minmax(220px,1.35fr) repeat(2,minmax(140px,.7fr)) minmax(230px,1.1fr) !important; gap: 34px !important; }
.simulator-footer .footer-brand { max-width: 360px !important; }
.simulator-footer .footer-logo { color: #fff !important; text-decoration: none !important; font-size: 16px !important; font-weight: 700 !important; letter-spacing: .13em !important; display: inline-flex !important; align-items: center !important; gap: 10px !important; }
.simulator-footer .footer-logo .brand-name { white-space: nowrap; letter-spacing: .06em !important; }
.simulator-footer .footer-logo .brand-name b { color: #42d3a0 !important; }
.simulator-footer .footer-tagline { color: #a3b4ae !important; font-size: 14px !important; line-height: 1.55 !important; margin: 18px 0 0 !important; }
.simulator-footer .footer-heading { color: #8fa59d !important; font-family: ui-monospace,SFMono-Regular,Menlo,monospace !important; font-size: 12px !important; font-weight: 500 !important; letter-spacing: .12em !important; text-transform: uppercase !important; margin: 0 0 14px !important; }
.simulator-footer .footer-heading-link { color: inherit !important; text-decoration: none !important; }
.simulator-footer .footer-heading-link:hover { color: #c4ff58 !important; }
.simulator-footer .footer-links { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid !important; gap: 8px !important; }
.simulator-footer .footer-links a { color: #c8d5cf !important; text-decoration: none !important; font-size: 14px !important; }
.simulator-footer .footer-links a:hover { color: #c4ff58 !important; }
.simulator-footer .footer-bottom { border-top: 1px solid #ffffff55 !important; margin-top: 38px !important; padding-top: 22px !important; display: flex !important; justify-content: space-between !important; align-items: center !important; }
.simulator-footer .footer-copyright { color: #a3b4ae !important; font-family: ui-monospace,monospace !important; font-size: 13px !important; margin: 0 !important; }

@media (max-width: 900px) {
  .simulator-footer .footer-grid { grid-template-columns: 1fr 1fr !important; gap: 28px !important; }
  .simulator-footer .footer-brand { grid-column: 1 / -1 !important; max-width: none !important; }
}
@media (max-width: 640px) {
  .topbar { height: 66px !important; padding: 0 18px !important; }
  .topbar nav { display: none !important; }
  .topbar .brand { font-size: 15px !important; }
  .topbar .top-actions button { padding: 9px 12px !important; font-size: 14px !important; }
  .simulator-footer .footer-inner { padding: 30px 22px 20px !important; }
  .simulator-footer .footer-grid { grid-template-columns: 1fr !important; gap: 25px !important; }
  .simulator-footer .footer-brand { grid-column: auto !important; }
  .simulator-footer .footer-bottom { margin-top: 30px !important; }
}

html.dark .topbar { background: rgba(7, 23, 19, .94) !important; border-color: #29463e !important; }
html.dark .topbar .brand, html.dark .topbar nav a:first-child { color: #e7f1ed !important; }
html.dark .topbar nav a { color: #b4c7c0 !important; }
html.dark .topbar .brand .brand-name b { color: #63d8ae !important; }

.genzei-article-context {
  margin: 42px 0 0 !important;
  padding: 20px 22px !important;
  border: 1px solid #d8d9d1 !important;
  border-left: 4px solid #0e6b54 !important;
  background: #f7f8f3 !important;
  color: #53635d !important;
  display: grid !important;
  gap: 8px !important;
  font-size: 13px !important;
  line-height: 1.75 !important;
}
.genzei-article-context strong { color: #132823 !important; font-size: 15px !important; }
.genzei-article-context a { color: #0e6b54 !important; font-weight: 700 !important; text-decoration: none !important; }
.genzei-article-context a:hover { text-decoration: underline !important; }
