@font-face { font-family: Nexon; src: url('/fonts/NEXONLv2Gothic-Regular.otf') format('opentype'); font-display: swap; }
@font-face { font-family: NotoJP; src: url('/fonts/NotoSansJP-Regular.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: NotoSC; src: url('/fonts/NotoSansSC-Regular.woff2') format('woff2'); font-display: swap; }
:root { color-scheme: light dark; --bg: #f0f0f0; --card: #fff; --ink: #202725; --muted: #52625b; --accent: #0f766e; --border: #c2d6ce; }
* { box-sizing: border-box; }
html { scroll-padding-top: 1.5rem; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: Nexon, sans-serif; line-height: 1.85; overflow-wrap: anywhere; }
:lang(ja) { font-family: NotoJP, sans-serif; }
:lang(zh-Hans) { font-family: NotoSC, sans-serif; }
.wrap { max-width: 860px; margin: auto; padding: 24px clamp(16px, 4vw, 40px) 48px; }
header, nav, footer { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
header { justify-content: space-between; padding-bottom: 32px; }
a { color: var(--accent); text-underline-offset: .2em; }
a:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; border-radius: 2px; }
.brand { font: 700 1.2rem sans-serif; text-decoration: none; }
nav { font-size: .9rem; }
nav a[aria-current] { font-weight: 700; text-decoration-thickness: 3px; }
h1 { font-size: clamp(2rem, 5vw, 2.8rem); line-height: 1.3; letter-spacing: -.03em; margin: 0 0 20px; }
h2 { font-size: 1.3rem; line-height: 1.5; margin: 0 0 16px; }
h3 { font-size: .95rem; margin: 0 0 8px; }
p { margin: 0 0 16px; }
.intro { color: var(--muted); font-size: 1.05rem; }
.contents { padding-left: 1.6rem; margin: 24px 0 32px; }
.contents li { padding: 4px 0; }
section { margin: 0 0 32px; padding-top: 28px; border-top: 1px solid var(--border); }
.example { background: var(--card); border: 1px solid var(--border); border-radius: 16px; padding: clamp(16px, 3vw, 28px); }
.sample-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 24px 0; }
pre { font: inherit; font-size: .92rem; background: var(--bg); border-radius: 8px; padding: 14px; margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; user-select: text; }
.back { font-weight: 700; }
footer { border-top: 1px solid var(--border); padding-top: 24px; justify-content: space-between; }
@media (max-width: 560px) { .sample-grid { grid-template-columns: 1fr; } header { align-items: flex-start; flex-direction: column; } }
@media (prefers-color-scheme: dark) { :root { --bg: #171e1b; --card: #222e28; --ink: #e8f1ec; --muted: #b7c8be; --accent: #98ddca; --border: #3d574a; } }
