/* roleplayer.kiraitami.com — Direction A, the quiet document (owner-picked 2026-08-29).
   Single source of the site's design values: the tokens below mirror the app's Lumina
   light theme (Color.kt), and the site is deliberately light-only like the app (DR-099).
   Change a value here and every page follows. */

:root {
  color-scheme: light;
  --paper: #FFFFFF;            /* LightBackground */
  --text: #1A1A1A;             /* LightOnBackground / near-black chrome */
  --muted: #5C5C5C;            /* LightSecondary */
  --faint: #767676;            /* LightOutline */
  --hairline: #E5E5E5;         /* LightSurfaceContainerHighest */
  --green: #4CB752;            /* SignatureGreen — the one reserved accent */
  --green-container: #CDEFC8;  /* SignatureGreenContainer */
  --on-green-container: #0A2E0C;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--text);
  font: 16px/1.65 "Montserrat", "Segoe UI", Arial, sans-serif;
  padding: 2.25rem 1.25rem 4rem;
}

main { max-width: 42rem; margin: 0 auto; }

h1 { font-size: 1.85rem; line-height: 1.22; font-weight: 700; margin: 0 0 0.5rem; letter-spacing: -0.01em; }
h2 { font-size: 1.1rem; font-weight: 700; margin: 2.25rem 0 0.6rem; }
h3 { font-size: 0.95rem; font-weight: 700; margin: 1.5rem 0 0.4rem; }
p, li { color: var(--text); }
.lede { color: var(--muted); font-size: 1.05rem; margin-top: 0; }
.updated { color: var(--faint); font-size: 0.9rem; margin: 0 0 2rem; }

a {
  color: var(--text);
  text-decoration: underline;
  text-decoration-color: var(--green);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
a:hover { color: var(--on-green-container); }

/* Header: brand row left, language toggle right. */
.site-header {
  max-width: 42rem;
  margin: 0 auto 2.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.brand {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  text-decoration: none;
}
.brand:hover { color: var(--text); }
.brand-dot { width: 9px; height: 9px; border-radius: 999px; background: var(--green); flex-shrink: 0; }
.brand-name { font-size: 0.8rem; font-weight: 700; letter-spacing: 0.16em; }
.brand-by { font-size: 0.8rem; font-weight: 500; color: var(--faint); }

.lang-toggle {
  display: flex;
  align-items: center;
  gap: 0.15rem;
  border: 1px solid var(--hairline);
  border-radius: 999px;
  padding: 0.2rem 0.35rem;
}
.lang-toggle button {
  font: 700 0.72rem/1 "Montserrat", "Segoe UI", Arial, sans-serif;
  color: var(--faint);
  background: none;
  border: none;
  border-radius: 999px;
  padding: 0.35rem 0.6rem;
  cursor: pointer;
}
.lang-toggle button[aria-pressed="true"] {
  color: var(--text);
  text-decoration: underline;
  text-decoration-color: var(--green);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
.lang-toggle .sep { color: var(--hairline); font-size: 0.72rem; }

/* Cards. The email card wears the signature container; everything else stays hairline. */
.card {
  border: 1px solid var(--hairline);
  border-radius: 14px;
  padding: 1.25rem 1.35rem;
  margin: 1.5rem 0;
}
.card h2 { margin-top: 0; }
.card-green {
  background: var(--green-container);
  border: none;
  color: var(--on-green-container);
}
.card-green h2, .card-green p, .card-green a { color: var(--on-green-container); }
.mail {
  display: inline-block;
  margin-top: 0.35rem;
  font-size: 1.05rem;
  font-weight: 700;
  word-break: break-all;
}

ul { padding-left: 1.15rem; }
li { margin: 0.35rem 0; }

/* Privacy table */
table { border-collapse: collapse; width: 100%; margin: 1rem 0; font-size: 0.95rem; }
th, td { text-align: left; padding: 0.6rem 0.7rem; border-bottom: 1px solid var(--hairline); vertical-align: top; }
th { color: var(--faint); font-weight: 600; }
.scroll { overflow-x: auto; }

/* On narrow screens the three-column table reads as stacked blocks: the bold
   lead-in already names each row, and the two remaining cells carry their
   column's name via data-label. */
@media (max-width: 640px) {
  .scroll table, .scroll tbody, .scroll tr, .scroll td { display: block; width: 100%; }
  .scroll thead { display: none; }
  .scroll tr { border-bottom: 1px solid var(--hairline); padding: 0.85rem 0; }
  .scroll td { border-bottom: none; padding: 0.2rem 0; }
  .scroll td[data-label]::before {
    content: attr(data-label) ": ";
    font-weight: 600;
    color: var(--faint);
  }
}

.callout {
  border: 1px solid var(--hairline);
  border-radius: 14px;
  padding: 1.1rem 1.3rem;
  margin: 1.5rem 0;
}
.callout p:first-child { margin-top: 0; }
.callout p:last-child { margin-bottom: 0; }

footer {
  margin-top: 3rem;
  color: var(--faint);
  font-size: 0.9rem;
  border-top: 1px solid var(--hairline);
  padding-top: 1.25rem;
}
footer a { color: var(--faint); }
footer a:hover { color: var(--text); }

/* Landing */
.hero { padding: 3.5rem 0 4rem; }
.hero h1 { font-size: 2.35rem; line-height: 1.18; max-width: 36rem; }
.hero .lede { font-size: 1.1rem; max-width: 30rem; }
.badge-slot {
  display: inline-block;
  margin-top: 1.4rem;
  border: 1px solid var(--hairline);
  border-radius: 999px;
  padding: 0.75rem 1.4rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--faint);
}
.footer-links { display: flex; flex-wrap: wrap; gap: 1.5rem; font-weight: 600; font-size: 0.9rem; }
