*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:#f3f4f1;color:#1d2420;font-size:18px;line-height:1.45}
a{color:inherit}
.top{background:#1f5f4a;color:#fff;padding:14px 18px}
.top a{text-decoration:none;font-weight:700;font-size:20px}
main{max-width:860px;margin:0 auto;padding:16px}
h1{font-size:26px;margin:8px 0 4px}
h2{font-size:22px;margin:28px 0 12px}
.dates{color:#4a554f;margin:0 0 12px}
.ended{display:inline-block;background:#fde8e8;color:#9b1c1c;border-radius:8px;padding:2px 10px;font-size:16px;margin-left:6px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.card{display:block;background:#fff;border-radius:14px;overflow:hidden;text-decoration:none;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.card img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:top}
.card div{padding:10px 12px}
.card b{display:block;font-size:17px}
.card span{color:#4a554f;font-size:15px}
.jump{position:sticky;top:0;z-index:2;background:#f3f4f1;padding:10px 0;display:flex;gap:8px;align-items:center;overflow-x:auto}
.jump span{font-weight:600;margin-right:4px}
.jump a{flex:none;display:inline-block;min-width:46px;text-align:center;padding:9px 12px;background:#fff;border:2px solid #1f5f4a;border-radius:10px;text-decoration:none;font-weight:700;color:#1f5f4a}
.page{scroll-margin-top:80px;margin:0 0 22px;background:#fff;border-radius:14px;padding:10px;border:3px solid transparent}
.page h3{margin:2px 4px 10px;font-size:18px}
.page img{display:block;width:100%;height:auto;border-radius:8px}
.here{display:none;background:#1f5f4a;color:#fff;border-radius:8px;padding:8px 12px;margin:0 0 10px;font-weight:600}
.page:target{border-color:#1f5f4a}
.page:target .here{display:block}
.empty{background:#fff;border-radius:14px;padding:20px}
.official{background:#fff;border-radius:14px;padding:16px 18px;margin:0 0 22px;border-left:6px solid #1f5f4a}
.official a,.official-line a{color:#1f5f4a;font-weight:700}
.official-line{margin:-4px 0 14px;color:#4a554f}
footer{max-width:860px;margin:10px auto 30px;padding:0 16px;color:#5f6a64;font-size:14px}
