산도르는 예테보리 인근의 시골 마을에 사는 15세 소년. 그는 발레에 재능을 가지고 있으며, 일주일에 네 번 발레학원을 다닌다. 젊었을 때 발레리나로 활동했던 그의 어머니는 결혼 때문에 꿈을 포기하고 살아온 것에 공허감을 느끼고 있다. 그래서 자식을 통해서 자기가 이루지 못한 꿈을 이루려는 강한 집착을 보인다. 산도르는 내성적인 성격이어서 친구가 없다. 같은 발레학원에 다니는 크리스티나를 짝사랑하고 있지만, 아직 여자와는 키스는 물론이고 손목도 제대로 잡아본 적이 없다. 동급생 친구들(특히 바박)은 산도르가 발레를 한다고 해서 만나기만 하면 동성애자라고 놀리며 괴롭힌다.
이다는 대도시 스톡홀름의 도심에 사는 15세 소녀. 그녀의 어머니는 남편으로부터 버림받고 우울증에 걸려서 거의 자기 방에서 나오지 않는다. 그래서 이다가 집안 살림을 꾸려나간다. 이다는 친구인 테레제, 수잔나와 함께 어울려 다니며 술과 담배를 즐기고, 성인 디스코클럽에 가거나 남자애랑 자는 등 탈선도 한다. 그럼에도 그녀는 늘 외롭다.
어느 날 밤, 산도르는 지독한 외로움을 느끼고 인터넷 채팅 사이트를 방문한다. 그러나 헛소리만 지껄여대는 한심한 대화들을 바라보면서 한층 외로움을 느끼고, 진정으로 대화를 나누고 싶은 사람이 있는지 공개 메시지를 보낸다. 이 메시지를 본 네티즌들이 철학자인 척하지 말고 잠이나 자라고 야유하자 그는 실망하면서 컴퓨터를 끈다. 그런데 멀리 스톡홀름에서 이 메시지를 본 사람이 있었다. 바로 이다였다.
이런저런 고민으로 잠 못 이루던 이다가 먼저 산도르에게 메시지를 띄운다. 대개의 채팅이 그렇듯이, 둘은 처음에는 거짓말을 섞어 자신을 과대 포장한다. 산도르는 자신을 친구들에게 인기가 많고 연애 경험도 많은 아이라고, 이다는 시골에서 승마를 즐기면서 여유로운 전원생활을 한다고 속인다.
이다가 산도르의 어설픈 성경험 묘사를 보고 거짓말임을 눈치 채면서 위기가 닥치지만, 자신의 흉허물을 서로에게 솔직히 털어놓으면서 더욱 친해지게 된다. 마침내 그들은 사진과 주소를 교환한다.
부모님을 따라 스톡홀름으로 놀러 가게 된 산도르는 이다를 보고 싶은 생각에 충동적으로 그녀의 집을 찾아 나선다. 친구들과 함께 자기 방에서 ‘소녀들의 밤’을 즐기고 있던 이다는 산도르의 갑작스런 방문에 깜짝 놀란다. 잔뜩 술에 취해 흐느적대는 이다의 모습과 그녀 친구들의 조롱에 심한 배신감을 느낀 산도르는 집으로 돌아가 이메일로 결별을 통보한다.
그로부터 얼마 후. 엄마가 자살을 시도하여 병원에 있는 동안, 다른 남자랑 사귀었다는 이유로 새 남자친구인 루카스가 집에까지 찾아와 행패를 부린다. 혼자서 두려움에 떨던 그녀는 유일하게 생각나는 친구인 산도르에게 전화를 걸어 도움을 요청한다. 산도르의 조언대로 위기를 넘긴 이다는 산도르와 다시 화해한다. 이 일을 계기로 그들은 서로에게 더욱 의지하며 우울한 사춘기의 일상을 함께 헤쳐나간다.
드디어 산도르의 초대로 이다가 예테보리를 찾아온다. 둘은 반가움에 어쩔 줄 모르고, 우정이라는 틀 속에서 서로에게 편안함을 느낀다. 그러나 서로 다른 성격과 성장 환경으로 인해 사소한 다툼이 계속되고, 친구들이 이다를 위해 열어준 파티에 갔다가 서로에게 치명적인 상처를 주는 싸움을 벌인다. 이다는 밤이 새기를 기다렸다가 기차를 타고 말없이 스톡홀름으로 돌아가버리는데…….