/* Fonts from the wakachi.ai brief, via Google Fonts: Instrument Serif
   (headings, one weight), Inter (body, 400/600), Noto Serif JP limited to the
   characters on the site — add any new Japanese character to text= below. */
@import url("https://fonts.googleapis.com/css2?family=Instrument+Serif&family=Inter:wght@400;600&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;600&display=swap&text=%E5%88%86%E3%81%8B%E3%81%A1%E5%90%88%E3%81%84%E3%82%B7%E3%82%A7%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0");

/* Palette from the wakachi.ai brief: Evergreen, Washi (paper), Sumi (ink),
   Vermilion for the status dot. */
:root {
  --bg: #f6f4ee; --fg: #1b1f1c; --muted: #545b56; --line: #e2dfd6;
  --card: #fbfaf6; --accent: #17704b; --tint: #dcefe3; --dot: #b93a22;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #121714; --fg: #e8ede9; --muted: #a2aba5; --line: #26302a;
    --card: #18201b; --accent: #5fc48e; --tint: #1e3a2b; --dot: #e8664a;
  }
}
* { box-sizing: border-box; }
body {
  margin: 0; background: var(--bg); color: var(--fg);
  font: 17px/1.6 Inter, system-ui, sans-serif;
}
main { max-width: 44rem; margin: 0 auto; padding: 4rem 1rem 3rem; }
a { color: var(--accent); }
h1, h3, .lede, .wordmark, .tagline {
  font-family: "Instrument Serif", ui-serif, Georgia, serif;
  font-weight: 400;
}
h1 { font-size: 2.8rem; line-height: 1.15; margin: 0 0 .5rem; letter-spacing: -.01em; }
h2 { font-size: .85rem; margin: 2.75rem 0 .75rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); font-weight: 600; }
h3 { font-size: 1.3rem; margin: 0; }
p { margin: 0 0 1rem; }
ul { margin: .5rem 0 0; padding-left: 1.2rem; }
li { margin-bottom: .35rem; }
.lede { font-size: 1.4rem; line-height: 1.45; color: var(--muted); }
.muted { color: var(--muted); }
.back { display: inline-block; margin-bottom: 2rem; text-decoration: none; }

/* Status line: a vermilion dot and a quiet label. */
.status { display: flex; align-items: center; gap: .6rem; color: var(--muted); font-size: .95rem; margin: 0; }
.status::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: var(--dot); }

.choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem; margin-top: 2.5rem; }
.choice {
  display: block; padding: 1.5rem; border: 1px solid var(--line); border-radius: 16px;
  background: var(--card); color: inherit; text-decoration: none;
  transition: border-color .15s, transform .15s;
}
.choice:hover, .choice:focus-visible { border-color: var(--accent); transform: translateY(-2px); }
.choice h3 { font-size: 1.9rem; margin: .5rem 0 .35rem; }
.choice p { margin: 0; color: var(--muted); }
.choice .kind { font-size: .95rem; color: var(--muted); }

.wordmark { display: flex; align-items: center; gap: .45em; font-size: 3.2rem; line-height: 1.1; margin: .6rem 0 .5rem; letter-spacing: -.01em; }
.wordmark svg { width: .95em; height: .95em; flex: none; fill: var(--accent); }
.wordmark .tld, .choice .tld { color: var(--accent); }
.tagline { font-size: 1.9rem; line-height: 1.2; margin: 0 0 .75rem; }
.sub { color: var(--muted); margin: 0 0 1.5rem; }
[lang="ja"] { font-family: "Noto Serif JP", ui-serif, serif; }
.meaning { background: var(--tint); color: var(--accent); border-radius: 10px; padding: .8rem 1rem; margin: 0 0 1rem; }
.meaning strong { font-weight: 600; }
.meaning small { display: block; font-size: .85rem; margin-top: .15rem; }
.cards { display: grid; gap: .75rem; }
@media (min-width: 640px) { .cards { grid-template-columns: 1fr 1fr; } }
.cards article { padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: 12px; background: var(--bg); }
.cards h2 { font: 600 1rem/1.4 Inter, system-ui, sans-serif; text-transform: none; letter-spacing: 0; color: var(--fg); margin: 0 0 .35rem; }
.cards h2 span { font-weight: 400; color: var(--muted); }
.cards p { margin: 0; color: var(--muted); font-size: .95rem; }

.panel { border: 1px solid var(--line); border-radius: 18px; background: var(--card); padding: 2rem; }
.center { min-height: 100vh; display: grid; place-items: center; padding: 1rem; }
.center main { padding: 0; width: 100%; max-width: 42.5rem; }
.center .back { margin: 1.25rem 0 0; }

.role { padding: 1.1rem 0; border-top: 1px solid var(--line); }
.role header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1rem; }
.role .when { color: var(--muted); font-size: .95rem; white-space: nowrap; }
.role .title { color: var(--muted); margin: 0; }
footer { max-width: 44rem; margin: 0 auto; padding: 0 1rem 3rem; color: var(--muted); font-size: .9rem; }
