body { 
    font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif; 
    margin: 0; 
    background-color: #ebf0f0; 
    display: flex; 
    justify-content: center; 
}
.app-container { 
    width: 100%; 
    max-width: 400px; 
    background-color: #ffffff; 
    min-height: 100vh; 
    position: relative; 
    padding-bottom: 60px; 
    box-sizing: border-box; 
    box-shadow: 0 4px 20px rgba(0,0,0,0.08); 
}
.header { 
    background-color: #61d4b3; 
    color: #ffffff; 
    text-align: center; 
    padding: 16px; 
    font-weight: bold; 
    font-size: 1.2rem; 
    letter-spacing: 1px;
}
.content { padding: 20px; }
.bottom-nav { 
    position: absolute; 
    bottom: 0; 
    width: 100%; 
    display: flex; 
    background-color: #61d4b3; 
    padding: 10px 0; 
    justify-content: space-around; 
}
.nav-btn { 
    background: rgba(255, 255, 255, 0.95); 
    color: #444;
    border: none; 
    padding: 10px 30px; 
    border-radius: 20px; 
    font-weight: bold; 
    cursor: pointer; 
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
    transition: transform 0.2s;
}
.nav-btn:active {
    transform: scale(0.95);
}
.hidden { display: none; }

/* マップ画面 */
.map-image-container { 
    background: #fcf8f2; 
    padding: 15px; 
    border-radius: 15px; 
    text-align: center; 
    box-shadow: inset 0 0 10px rgba(0,0,0,0.03);
}
.map-image-container img { width: 100%; max-width: 300px; border-radius: 10px; }
.map-desc { text-align: center; margin-top: 15px; font-weight: bold; color: #555; }

/* スタンプ画面 */
.scan-btn { 
    width: 100%; 
    background-color: #ff8fa3; 
    color: #fff; 
    border: none; 
    padding: 15px; 
    border-radius: 12px; 
    font-size: 1.1rem; 
    font-weight: bold; 
    margin-bottom: 20px; 
    cursor: pointer; 
    box-shadow: 0 4px 10px rgba(255, 143, 163, 0.4);
    transition: all 0.2s;
}
.scan-btn:active {
    transform: scale(0.98);
    box-shadow: 0 2px 4px rgba(255, 143, 163, 0.4);
}
.stamp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.stamp-box { 
    background: #fcf8f2; 
    border: 2px solid #f0e3d2; 
    border-radius: 15px; 
    padding: 15px; 
    text-align: center; 
    font-weight: bold; 
    color: #666;
    cursor: pointer; 
    position: relative; 
    transition: background 0.2s;
}
.stamp-box:active {
    background: #f5ead9;
}
.stamp-circle { 
    width: 70px; 
    height: 70px; 
    background: #fff; 
    border-radius: 50%; 
    margin: 10px auto; 
    overflow: hidden; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    box-shadow: 0 3px 8px rgba(0,0,0,0.06);
}
.stamp-circle img { width: 100%; height: 100%; object-fit: cover; }

/* ポップアップ（モーダル） */
.modal { 
    display: none; 
    position: fixed; 
    top: 0; left: 0; width: 100%; height: 100%; 
    background: rgba(0,0,0,0.4); 
    backdrop-filter: blur(4px); /* 背景を少しぼかす */
    align-items: center; 
    justify-content: center; 
    z-index: 10; 
}
.modal-content { 
    background: #ffffff; 
    border: none; 
    border-radius: 20px; 
    padding: 30px; 
    text-align: center; 
    width: 80%; 
    max-width: 300px; 
    box-shadow: 0 10px 25px rgba(0,0,0,0.15);
}
.modal-content h3 { margin-top: 0; color: #444; }
.modal-close { display: block; margin-top: 20px; text-decoration: underline; color: #999; cursor: pointer; font-size: 0.9rem;}
.ar-btn { 
    background: #f0f0f0; 
    border: none; 
    padding: 12px 25px; 
    border-radius: 25px; 
    font-weight: bold; 
    margin-top: 20px; 
    cursor: not-allowed; 
    color: #aaa; 
    font-size: 1rem;
    transition: all 0.2s;
}
.ar-btn.active { 
    background: #61d4b3; 
    color: #fff; 
    cursor: pointer; 
    box-shadow: 0 4px 12px rgba(97, 212, 179, 0.4);
}
.ar-btn.active:active {
    transform: scale(0.95);
}

/* カメラコンテナ用 */
#reader { width: 100%; margin-top: 10px; display: none; border-radius: 12px; overflow: hidden; }