:root {
  color-scheme: light;
  background: #faf8f1;
  color: #454d3f;
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}

* { box-sizing: border-box; }
body { min-height: 100vh; margin: 0; }
.welcome-brand { max-width: 1280px; margin: auto; padding: 30px 40px; font-size: 18px; font-weight: 600; letter-spacing: -.04em; }
.welcome-main { max-width: 1128px; margin: auto; padding: 18px 32px 64px; }
.welcome-intro { text-align: center; }
.welcome-glow {
  width: 52px;
  height: 52px;
  margin: 0 auto 24px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #f8dca2, #eab778 75%, #dea976);
  box-shadow: 0 0 50px 14px #f2d7a52b;
}
.welcome-label { margin: 0 0 16px; color: #72735e; font-size: 10px; letter-spacing: .22em; }
h1 { margin: 0; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(25px, 4vw, 40px); font-weight: 400; line-height: 1.7; letter-spacing: .06em; }
.welcome-message { margin: 16px 0 0; color: #72735e; font-size: 13px; line-height: 2; letter-spacing: .06em; }
.site-directory { margin-top: 44px; }
.directory-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.directory-heading h2 { margin: 0; font-size: 14px; font-weight: 600; letter-spacing: .08em; }
.directory-heading > span { color: #72735e; font-size: 10px; letter-spacing: .16em; }
.site-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.site-grid > li { display: flex; min-width: 0; }
.site-card {
  --accent: #655587;
  --tint: #efebf5;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 24px;
  border: 1px solid #e4e4d9;
  border-top: 3px solid var(--accent);
  border-radius: 12px;
  background: #fffefb;
  color: inherit;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.site-card--living { --accent: #577249; --tint: #edf2e7; }
.site-card--dogs { --accent: #394bc2; --tint: #eef0fc; }
.site-card--beauty { --accent: #975349; --tint: #f9ede8; }
.site-card--news { --accent: #326c75; --tint: #e9f2f1; }
.site-card-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.site-category { padding: 5px 10px; border-radius: 5px; background: var(--tint); color: var(--accent); font-size: 11px; font-weight: 600; }
.site-number { color: var(--accent); font-family: Georgia, serif; font-size: 18px; }
.site-card h3 { margin: 21px 0 10px; font-size: 19px; line-height: 1.5; letter-spacing: -.025em; }
.site-description { margin: 0 0 23px; color: #686f62; font-size: 12px; line-height: 1.95; }
.site-enter { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 14px; border-top: 1px solid #eeeee5; color: var(--accent); font-size: 12px; font-weight: 600; }
.site-arrow { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--tint); font-size: 17px; }
.site-card:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
@media (hover: hover) {
  .site-card:hover { transform: translateY(-4px); border-color: var(--accent); box-shadow: 0 8px 24px #454d3f0d; }
}
.welcome-footer { padding: 0 24px 28px; color: #72735e; text-align: center; }
.welcome-footer small { font-size: 10px; letter-spacing: .08em; }
.welcome-footer a { display: block; width: fit-content; margin: 0 auto 12px; color: inherit; font-size: 12px; text-underline-offset: 4px; }
@media (max-width: 900px) {
  .site-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .welcome-brand { padding: 24px; font-size: 16px; }
  .welcome-main { padding: 18px 20px 40px; }
  h1 { font-size: clamp(21px, 5.8vw, 32px); letter-spacing: 0; }
  .welcome-message { font-size: 12px; }
  .site-directory { margin-top: 32px; }
  .site-grid { grid-template-columns: 1fr; gap: 12px; }
  .site-card { padding: 20px; }
  .site-card h3 { margin-top: 16px; }
  .site-description { margin-bottom: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .site-card { transition: none; }
  .site-card:hover { transform: none; }
}
