:root{
  --bg:#f4f6f3;--surface:#ffffff;--ink:#1d2b2a;--muted:#5b6b69;--line:#dfe6e2;
  --accent:#2f7a5f;--accent-ink:#ffffff;--shadow:0 1px 2px #12302812,0 6px 20px #12302810;
  --study:#2f7a5f;--sim:#b4512f;--map:#3166a8;--chat:#6b4fa3;--trial:#8a6a12;--trial-bg:#fdf3d6;
  --notice-bg:#fdf6e3;--notice-line:#ecd9a2;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#121816;--surface:#1b2321;--ink:#e6eeeb;--muted:#9fb0ac;--line:#2c3734;
    --accent:#7cc9a8;--accent-ink:#0f1a16;--shadow:0 1px 2px #0006,0 8px 24px #0005;
    --study:#7cc9a8;--sim:#ee9a7a;--map:#8fb6ec;--chat:#b9a3e6;--trial:#f0cf72;--trial-bg:#3a3118;
    --notice-bg:#2b2618;--notice-line:#4d4326;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Hiragino Sans","Noto Sans JP","Yu Gothic UI",sans-serif;line-height:1.75}
.wrap{max-width:1040px;margin:0 auto;padding:0 max(16px,env(safe-area-inset-left)) 0 max(16px,env(safe-area-inset-right))}
.hero{padding:72px 0 40px}
.eyebrow{margin:0 0 10px;font-size:12px;letter-spacing:.18em;font-weight:700;color:var(--accent)}
h1{margin:0;font-size:clamp(28px,5vw,40px);line-height:1.35;letter-spacing:.02em}
.lead{margin:16px 0 0;color:var(--muted);font-size:16px;max-width:40em}
.sites{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.card{display:flex;flex-direction:column;height:100%;padding:24px 24px 20px;background:var(--surface);border:1px solid var(--line);border-radius:14px;color:inherit;text-decoration:none;box-shadow:var(--shadow);transition:transform .15s,border-color .15s}
.card:hover{transform:translateY(-2px);border-color:var(--accent)}
.card:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.card h2{margin:12px 0 8px;font-size:21px;line-height:1.4}
.desc{margin:0;color:var(--muted);font-size:14.5px}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid currentColor}
.tag-study{color:var(--study)}.tag-sim{color:var(--sim)}.tag-map{color:var(--map)}.tag-chat{color:var(--chat)}
.tag-trial{color:var(--trial);background:var(--trial-bg)}
.facts{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0;padding:0}
.facts li{font-size:12px;padding:2px 9px;border-radius:6px;background:var(--bg);color:var(--muted)}
.notice{margin:14px 0 0;padding:10px 12px;font-size:13px;border-radius:8px;background:var(--notice-bg);border:1px solid var(--notice-line)}
.go{margin-top:auto;padding-top:18px;font-size:13px;font-weight:600;color:var(--accent);overflow-wrap:anywhere}
.about{margin:40px 0 0;padding:22px 24px;background:var(--surface);border:1px solid var(--line);border-radius:14px}
.about h2{margin:0 0 6px;font-size:16px}
.about ul{margin:0;padding-left:1.2em;color:var(--muted);font-size:14px}
footer{padding-top:32px;padding-bottom:max(32px,env(safe-area-inset-bottom));color:var(--muted);font-size:12px}
@media (max-width:720px){
  .hero{padding:44px 0 26px}
  .sites{grid-template-columns:1fr;gap:14px}
  .card{padding:20px 18px 18px}
  br.wide{display:none}
}
@media (prefers-reduced-motion:reduce){.card{transition:none}.card:hover{transform:none}}
