/* be-vietnam-pro-vietnamese-400-normal */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(fonts/be-vietnam-pro-vietnamese-400-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* be-vietnam-pro-latin-ext-400-normal */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(fonts/be-vietnam-pro-latin-ext-400-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* be-vietnam-pro-latin-400-normal */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(fonts/be-vietnam-pro-latin-400-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* be-vietnam-pro-vietnamese-700-normal */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(fonts/be-vietnam-pro-vietnamese-700-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* be-vietnam-pro-latin-ext-700-normal */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(fonts/be-vietnam-pro-latin-ext-700-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* be-vietnam-pro-latin-700-normal */
@font-face {
  font-family: 'Be Vietnam Pro';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(fonts/be-vietnam-pro-latin-700-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* The website (scripts/site.ts prepends the Be Vietnam Pro fonts). Colours of the app icon and the app's themes
   (src/ui/style.css): dark tile #182126, QR teal #3DB5C5; the light theme's teal is darker to read on white. */
:root {
  --bg: #FFFFFF; --surface: #F3F6F7; --line: #CFD7DB; --fg: #182126; --muted: #55636B;
  --accent: #08707F; --accent-fg: #FFFFFF;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #182126; --surface: #20292E; --line: #2E3A41; --fg: #E2E9EC; --muted: #9BA9B1;
    --accent: #3DB5C5; --accent-fg: #062A30;
    color-scheme: dark;
  }
}
* { box-sizing: border-box }
html { -webkit-text-size-adjust: 100% }
body { margin: 0; background: var(--bg); color: var(--fg); font: 16px/1.65 "Be Vietnam Pro", "Segoe UI", system-ui, sans-serif }
.wrap { max-width: 860px; margin: 0 auto; padding: 0 16px }
a { color: var(--accent) }

header { border-bottom: 1px solid var(--line) }
header .wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; padding-top: 12px; padding-bottom: 12px }
.brand { display: flex; align-items: center; gap: 10px; margin-right: auto; color: var(--fg); font-size: 20px; font-weight: 700; text-decoration: none }
.brand img { border: 0 }
nav { display: flex; flex-wrap: wrap; gap: 4px 18px }
nav a { color: var(--fg); text-decoration: none }
nav a:hover { color: var(--accent); text-decoration: underline }
nav a[aria-current] { color: var(--accent); font-weight: 700 }

main { padding-top: 8px; padding-bottom: 32px }
h1 { margin: 24px 0 12px; font-size: 2.1rem; line-height: 1.2 }
h2 { margin: 2.2em 0 .6em; font-size: 1.5rem; line-height: 1.3 }
h3 { margin: 1.8em 0 .5em; font-size: 1.2rem; line-height: 1.35 }
:target { scroll-margin-top: 12px }
img { max-width: 100%; height: auto }
main img { border: 1px solid var(--line); border-radius: 6px }
table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; margin: 1em 0 }
th, td { padding: 6px 10px; border: 1px solid var(--line); text-align: left; vertical-align: top }
th { background: var(--surface) }
code, kbd { padding: .1em .35em; border-radius: 4px; background: var(--surface); font-family: ui-monospace, Consolas, monospace; font-size: .9em }
kbd { border: 1px solid var(--line); border-bottom-width: 2px }
blockquote { margin: 1em 0; padding: .1em 1em; border-left: 4px solid var(--accent); background: var(--surface) }

.btn { display: inline-block; padding: 12px 22px; border-radius: 8px; background: var(--accent); color: var(--accent-fg); font-weight: 700; text-decoration: none }
.btn:hover { filter: brightness(1.1) }
.btn.off { border: 1px solid var(--line); background: var(--surface); color: var(--muted) }
.toc { margin: 1.5em 0; padding: 4px 20px; border-radius: 8px; background: var(--surface) }
.toc summary { padding: 8px 0; cursor: pointer; font-weight: 700 }


footer { border-top: 1px solid var(--line); color: var(--muted); font-size: 14px }
footer .wrap { padding-top: 16px; padding-bottom: 32px }

.pick { max-width: 400px; margin: 15vh auto; padding: 0 16px; text-align: center }

@media (max-width: 600px) {
  body { font-size: 15px }
  nav { gap: 4px 14px }
  h1 { font-size: 1.7rem }
  h2 { font-size: 1.3rem }
}
