
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
font-family:"Inter","Noto Sans JP",sans-serif;
background:#f8fbff;
overflow-x:hidden;
color:#222;
}
.hero{
height:100vh;
display:flex;
align-items:center;
justify-content:center;
position:relative;
overflow:hidden;
}
.hero-text{position:relative;z-index:2;text-align:center}
.small{letter-spacing:4px;color:#666}
h1{
font-size:clamp(3rem,8vw,6rem);
line-height:1.05;
font-weight:700;
margin:20px 0;
}
.lead{color:#666;margin-bottom:40px}
.button{
display:inline-block;
padding:15px 30px;
border-radius:999px;
background:white;
text-decoration:none;
color:#111;
box-shadow:0 10px 30px rgba(0,0,0,.08);
transition:.3s;
}
.button:hover{transform:translateY(-3px)}
.blob{
position:absolute;
border-radius:50%;
filter:blur(40px);
opacity:.7;
animation:float 12s ease-in-out infinite;
}
.b1{width:420px;height:420px;background:#9dd6ff;left:-120px;top:80px}
.b2{width:360px;height:360px;background:#ffd8f5;right:-60px;top:180px;animation-delay:2s}
.b3{width:300px;height:300px;background:#fff2a8;bottom:-100px;left:40%}
@keyframes float{
50%{transform:translateY(-40px) translateX(30px)}
}
header{
position:fixed;
top:-80px;
left:50%;
transform:translateX(-50%);
width:min(1000px,92%);
padding:15px 30px;
display:flex;
justify-content:space-between;
align-items:center;
background:rgba(255,255,255,.6);
backdrop-filter:blur(18px);
border:1px solid rgba(255,255,255,.6);
border-radius:18px;
transition:.4s;
z-index:10;
}
header.show{top:20px}
nav a{margin-left:20px;text-decoration:none;color:#333}
.glass{
width:min(1000px,90%);
margin:80px auto;
padding:50px;
background:rgba(255,255,255,.65);
backdrop-filter:blur(20px);
border-radius:30px;
box-shadow:0 20px 60px rgba(0,0,0,.06);
}
.search-area{
display:flex;
flex-wrap:wrap;
gap:16px;
margin:24px 0 0;
}
.search-area input,
.search-area select{
flex:1 1 240px;
min-width:180px;
padding:14px 18px;
border:1px solid rgba(0,0,0,.12);
border-radius:16px;
background:#fff;
color:#111;
outline:none;
font-size:1rem;
}
.search-area select{appearance:none;}
.card,.bigcard{
margin-top:20px;
padding:25px;
background:white;
border-radius:20px;
}
.progress{
position:fixed;
top:0;left:0;
height:4px;
width:0;
background:linear-gradient(90deg,#4facfe,#00f2fe,#43e97b,#f9f871,#ff8a65,#ff5ea8);
z-index:100;
}

.group-grid{
display:grid;
gap:24px;
grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
margin-top:24px;
max-width:1200px;
margin-left:auto;
margin-right:auto;
}

/* Allow the group-list section to be a bit wider so fixed-size cards fit more columns on large screens */
#group-list.glass{
	width: min(1200px, 95%);
}

.group-card{
background:#fff;
border-radius:24px;
overflow:hidden;
box-shadow:0 20px 50px rgba(0,0,0,.08);
display:grid;
gap:12px;
padding:24px;
}

.group-card img,
.group-card .thumb{
width:100%;
aspect-ratio:16 / 9;
object-fit:cover;
border-radius:18px;
background:#f1f8ff;
display:block;
}

#detail-content .thumb{
max-width:720px;
max-height:420px;
width:100%;
height:auto;
object-fit:cover;
border-radius:20px;
display:block;
margin-bottom:20px;
}

.group-card h3{
margin:0;
font-size:1.35rem;
color:#111;
}

.group-card .meta{
display:grid;
gap:10px;
font-size:.95rem;
color:#555;
}

.group-card .tag-row{
display:flex;
flex-wrap:wrap;
gap:10px;
align-items:center;
}

.group-card .tag{
display:inline-flex;
padding:6px 12px;
background:#e8f5ff;
color:#007acc;
border-radius:999px;
font-size:.95rem;
}

.group-card .audience-tag{
background:#fff4e6;
color:#b85a00;
border-radius:999px;
padding:6px 12px;
font-size:.95rem;
}

.organization{
margin:8px 0 14px;
color:#2f4b6b;
font-weight:700;
font-size:1rem;
}

.organization-pill{
display:inline-block;
padding:6px 10px;
margin-bottom:4px;
background:#eef7ff;
color:#2b5b8a;
border-radius:999px;
font-weight:700;
font-size:0.92rem;
}

#detail-content h2{
color:#1f2a44;
margin:8px 0 12px;
}

#detail-content .meta,
#detail-content .audience,
#detail-content .card p{
color:#334155;
line-height:1.7;
}

#detail-content .card{
background:#f8fbff;
border:1px solid #e2e8f0;
}

.group-card .description{
color:#444;
line-height:1.7;
margin:0;
}

header nav a[aria-current="page"]{
font-weight:700;
color:#111;
}

.group-link{display:block;text-decoration:none;color:inherit}
.group-link:focus{outline:2px solid rgba(0,122,255,.2);border-radius:12px}
.group-card{transition:transform .12s ease, box-shadow .12s ease}
.group-link:hover .group-card{transform:translateY(-6px);box-shadow:0 30px 70px rgba(0,0,0,.12)}

.hero-text .lead{
max-width:680px;
margin:0 auto 24px;
color:#4a4a4a;
}

@media(max-width:640px){
.hero{padding:0 20px}
.glass{padding:36px 24px}
.group-card{padding:20px}
}
