/* Typography loaded only by the student garden and registration page.
   Locally hosted Roboto supports Vietnamese,
   all weights and italic without relying on Google Fonts/CDN availability.
   Font source: google/fonts commit 1c627bfa375fc51cf86fabeca4f6e08a95f0aa5c.
   License: /fonts/roboto/OFL.txt. */
@font-face {
  font-family: "Roboto";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/roboto/Roboto-Variable.ttf") format("truetype");
}
@font-face {
  font-family: "Roboto";
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("/fonts/roboto/Roboto-Italic-Variable.ttf") format("truetype");
}
:root { --site-font-family: "Roboto", "Segoe UI", Arial, sans-serif; }

/* Two root pseudo-classes intentionally outrank legacy page font rules.
   Only change the family: existing font sizes, weights and layout remain intact.
   Never overwrite glyph fonts or any descendants inside a mathematical renderer. */
:root:root body,
:root:root body :not(:where(
  .fa, .fas, .far, .fal, .fad, .fat, .fab,
  [class^="fa-"], [class*=" fa-"],
  .material-icons, .material-icons-outlined, .material-icons-round,
  .material-symbols-outlined, .material-symbols-rounded, .material-symbols-sharp,
  .katex, .katex *, mjx-container, mjx-container *,
  .MathJax, .MathJax *, .MathJax_Display, .MathJax_Display *, math, math *
)) {
  font-family: var(--site-font-family) !important;
}

/* One local Google asset on both authentication actions. */
.btn-google .google-logo {
  display: block;
  width: 20px;
  height: 20px;
  max-width: none;
  object-fit: contain;
  flex: 0 0 20px;
}
.garden-brand .garden-brand-logo {
  width: 48px;
  height: 48px;
  object-fit: contain;
  flex: 0 0 48px;
  background: white;
  border-radius: 12px;
}
@media (max-width: 600px) {
  .garden-brand .garden-brand-logo {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }
}
