:root {
  --night: #1a0b26;
  --candy: #ff4f9a;
  --lilac: #a97cff;
  --pearl: #fff3f8;
  --muted: #cbb8d9;
  color-scheme: dark;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  min-height: 100svh;
  color: var(--pearl);
  font-family: 'Zen Maru Gothic', 'Mitr', -apple-system, 'Hiragino Maru Gothic ProN', sans-serif;
  line-height: 1.75;
  background:
    radial-gradient(60% 30% at 90% 0%, rgba(169, 124, 255, 0.35), transparent 70%),
    radial-gradient(60% 30% at 0% 40%, rgba(255, 79, 154, 0.2), transparent 72%),
    linear-gradient(180deg, #24102f 0%, var(--night) 40%, #12071a 100%) fixed;
}
:lang(ja) { word-break: auto-phrase; }
.wrap { width: min(100% - 40px, 680px); margin: 0 auto; padding: 28px 0 64px; }
header { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 36px; }
.mark {
  font-size: 1.4rem; font-weight: 900; text-decoration: none;
  background: linear-gradient(180deg, rgba(255,255,255,.85) 0%, rgba(255,255,255,0) 52%), linear-gradient(100deg, var(--candy), var(--lilac));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.langs { display: flex; padding: 3px; border: 1px solid rgba(255,255,255,.14); border-radius: 999px; background: rgba(42,18,60,.6); }
.langs button {
  min-width: 44px; min-height: 32px; padding: 0 11px; border: 0; border-radius: 999px;
  background: transparent; color: var(--muted); font: inherit; font-size: .8rem; font-weight: 700; cursor: pointer;
}
.langs button[aria-pressed='true'] { color: #fff; background: linear-gradient(135deg, var(--candy), var(--lilac)); }
.langs button:focus-visible, a:focus-visible { outline: 2px solid var(--candy); outline-offset: 2px; }
h1 { margin: 0 0 4px; font-size: 2rem; line-height: 1.3; }
.updated { margin: 0 0 32px; color: var(--muted); font-size: .9rem; }
h2 { margin: 36px 0 8px; font-size: 1.15rem; }
p, li { color: #eadff2; }
ul { padding-left: 1.3em; }
a { color: #ffb3d4; }
footer { margin-top: 48px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12); display: flex; gap: 20px; flex-wrap: wrap; font-size: .9rem; }
