:root { color-scheme: light dark; --bg: #fff; --fg: #0f172a; --muted: #475569; --line: #e2e8f0; --accent: #0f766e; --accent-fg: #fff; --soft: #f1f5f9 }
@media (prefers-color-scheme: dark) { :root { --bg: #0b1120; --fg: #e2e8f0; --muted: #94a3b8; --line: #1e293b; --accent: #2dd4bf; --accent-fg: #042f2e; --soft: #111a2e } }
* { box-sizing: border-box }
body { margin: 0; background: var(--bg); color: var(--fg); font: 1rem/1.7 system-ui, -apple-system, 'Segoe UI', 'Malgun Gothic', 'Apple SD Gothic Neo', sans-serif; overflow-wrap: anywhere }
a { color: var(--accent) }
.site-header, .site-footer, main { max-width: 44rem; margin: 0 auto; padding: 1rem }
.site-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line) }
.brand { font-weight: 700; font-size: 1.15rem; color: var(--fg); text-decoration: none }
.button { display: inline-block; padding: .55rem 1rem; border-radius: .5rem; background: var(--accent); color: var(--accent-fg); font-weight: 600; text-decoration: none }
h1 { font-size: 1.75rem; line-height: 1.25; margin: 1rem 0 }
h2 { font-size: 1.3rem; line-height: 1.3; margin: 2rem 0 .5rem }
h3 { font-size: 1.1rem; margin: 1.5rem 0 .5rem }
li { margin: .35rem 0 }
code { background: var(--soft); padding: .1rem .3rem; border-radius: .25rem }
blockquote { margin: 1rem 0; padding: .1rem 1rem; border-left: 4px solid var(--accent); background: var(--soft) }
hr { border: 0; border-top: 1px solid var(--line); margin: 2rem 0 }
figure { margin: 1.25rem 0; text-align: center }
figure img { max-width: 100%; height: auto; border: 1px solid var(--line); border-radius: .75rem; background: #fff }
figcaption { color: var(--muted); font-size: .9rem; margin-top: .4rem }
.faq dt { font-weight: 700; margin-top: 1rem }
.faq dd { margin: .25rem 0 0 }
.cta-row { margin: 2rem 0 .75rem }
.disclaimer { color: var(--muted); font-size: .9rem; border-top: 1px solid var(--line); padding-top: .75rem }
.site-footer { border-top: 1px solid var(--line); color: var(--muted); font-size: .85rem }
.site-footer nav { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin-bottom: .75rem }

/* Keep Korean words intact; Japanese uses strict punctuation-aware line breaking. */
:lang(ko) { word-break: keep-all; overflow-wrap: anywhere; }
:lang(ja) { word-break: normal; line-break: strict; overflow-wrap: anywhere; }
/* Keep the data-flow table readable on narrow screens and keyboard-scrollable. */
.security-table-scroll { max-width: 100%; overflow-x: auto; }
.security-table-scroll table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: .9rem; }
.security-table-scroll caption { text-align: left; font-weight: 700; padding: 12px 0; }
.security-table-scroll th, .security-table-scroll td { padding: 12px; border: 1px solid #b8b8b8; text-align: left; vertical-align: top; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap }
.site-header .language select { font: inherit; font-size: .9rem; padding: .35rem .5rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--bg); color: var(--fg) }
