body{
    margin:0;
    font-family:sans-serif;
    background-image:url("img/background.jpg");
    background-size:cover;
    background-position:center;
    background-attachment:fixed;
}

/* ヘッダー */

header{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    padding:15px;
}

.title-img{
    height:60px;
}

/* メイン */

main{
    padding-top:100px;
    padding-bottom:100px;
}

/* タイムライン */

.timeline{
    position:relative;
    max-width:800px;
    margin:auto;
}

.timeline::before{
    content:"";
    position:absolute;
    left:30px;
    top:0;
    width:4px;
    height:100%;
    background:white;
}

/* イベント */

.event{
    position:relative;
    margin:20px 0;
    padding-left:70px;
}

.event::before{
    content:"";
    position:absolute;
    left:22px;
    top:15px;
    width:16px;
    height:16px;
    background:white;
    border-radius:50%;
}

/* 見出し */

.event-header{
    background:rgba(70,130,255,0.8);
    padding:12px 15px;
    border-radius:6px;
    cursor:pointer;
    font-weight:bold;
    color:#FFFFFF;
}

/* キャラ表示 */

.characters{
    display:flex;
    gap:10px;
    margin-top:8px;
}

.character{
    display:flex;
    align-items:center;
    gap:5px;
    background:rgba(250,250,250,0.8);
    padding:3px 8px;
    border-radius:20px;
    font-size:13px;
}

.character img{
    width:24px;
    height:24px;
    border-radius:50%;
}

/* 詳細 */

.event-content{
    max-height:0;
    overflow:hidden;
    transition:max-height 0.4s ease;
    background:rgba(250,250,250,0.8);
    margin-top:5px;
    padding:0 15px;
    border-radius:6px;
}

.event.open .event-content{
    padding:15px;
    max-height:500px;
}

.event-content img{
    max-width:100%;
    margin-top:10px;
}

/* フッター */

footer{
    text-align:center;
    color:white;
    padding:20px;
}

/* =========================
   スマホ専用タイムラインUI
========================= */

@media screen and (max-width:768px){

/* 背景 */

body{
    background-attachment:scroll;
}

/* ヘッダー */

header{
    padding:10px 15px;
}

.title-img{
    height:42px;
}

/* メイン */

main{
    padding-top:80px;
    padding-bottom:60px;
}

/* タイムライン */

.timeline{
    max-width:92%;
}

/* スマホでは縦ラインを消す */

.timeline::before{
    display:none;
}

/* イベントカード */

.event{
    padding-left:0;
    margin:20px 0;
}

/* 丸も消す */

.event::before{
    display:none;
}

/* 見出しカード */

.event-header{
    font-size:16px;
    padding:16px;
    border-radius:12px;
    line-height:1.5;
    box-shadow:0 4px 10px rgba(0,0,0,0.2);
}

/* キャラ表示 */

.characters{
    flex-wrap:wrap;
    gap:8px;
    margin-top:10px;
}

/* キャラタグ */

.character{
    font-size:13px;
    padding:5px 10px;
    border-radius:30px;
}

/* キャラ画像 */

.character img{
    width:22px;
    height:22px;
}

/* 詳細カード */

.event-content{
    font-size:15px;
    line-height:1.7;
    margin-top:10px;
    border-radius:10px;
    box-shadow:0 4px 10px rgba(0,0,0,0.15);
}

/* 開いた時 */

.event.open .event-content{
    max-height:1000px;
}

/* 画像 */

.event-content img{
    border-radius:8px;
}

/* フッター */

footer{
    font-size:14px;
}

}